【问题标题】:Three.js buffergeometry disappears after moving camera to closeThree.js buffergeometry在移动相机关闭后消失
【发布时间】:2015-12-27 14:24:50
【问题描述】:

移动相机关闭后,我的缓冲几何消失了。您还可以在具有TrackballControls 的drawcalls Three.js example 中看到。就我而言,情况要糟糕得多。我的点在 0 到 400 的距离处消失,而我的线在 0 到 100 的距离处消失。我的对象在简单的几何体上工作正常,但在缓冲几何体上却不行。我发现它与缓冲几何的质心有关。我尝试使用不同的相机来更改相机范围,但仍然无法正常工作。移动相机后如何阻止我的对象消失?

更新

通过添加linesMesh.frustumCulled = false; 和删除geometry.computeBoundingSphere(); 使其正常工作。感谢大家的帮助。

【问题讨论】:

  • 这是否有一些自定义顶点着色器,如果有,请尝试设置 yourMesh.frustrumCulled = false;
  • 感谢您的评论,但我不使用任何自定义顶点着色器。我从threejs.org/examples/#webgl_buffergeometry_drawcalls 示例开始,然后为点和线添加了带有Tween 动画的自定义位置,现在当我移动相机时,线和点消失了。如果没有动画,当我将相机移动到缓冲几何的中心时,只有线条会消失,就像在 Three.js 的 drawcalls 示例中一样。
  • 如果你真的需要帮助,你需要让别人轻松帮助你。
  • linesMesh 几何的边界球半径是多少?为什么?
  • 请采纳答案

标签: camera three.js lines


【解决方案1】:

我在使用 BufferGeometry 时遇到了类似的问题,而 myMesh.frustrumCulled = false; 确实解决了这个问题,myMesh.geometry.computeBoundingSphere(); 也解决了这个问题

【讨论】:

    【解决方案2】:

    Three.js 认为您的对象在截锥体之外。添加行

    linesMesh.frustumCulled = false;
    

    它应该阻止它消失。

    【讨论】:

    • 这不需要是一行,我不知道为什么我的答案被编辑了。
    【解决方案3】:

    我建议您检查相机的.near 裁剪参数。靠近相机的物体自然会被切断。

    【讨论】:

    • 我试过了,但我的点和线仍然消失了。在threejs.org/examples/#webgl_buffergeometry_drawcalls 中,您可以看到在您使用相机继续放大后我得到了什么。在某些相机位置,线条会消失。在我的情况下,积分也消失了。
    • 这就是相机的工作原理。但请注意,您并没有真正“缩放”——您正在将相机移动得更近(直到它与几何体相交)。如果您想在不与场景碰撞相机的情况下进行缩放,请更改 FOV(并调用 updateProjectionMatrix()
    • 我的对象已经在 50-100 距离处消失了,这看起来像是一个严重的故障。我更喜欢将 fov 设置为 45。我的点不会在 +-400 的距离处渲染。我的对象是动画的,所以我认为质心与此有关。
    猜你喜欢
    • 2016-03-16
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 2021-04-04
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多