【问题标题】:Fix disappearing points in Three.js PointCloud修复 Three.js PointCloud 中的消失点
【发布时间】:2016-12-08 06:54:39
【问题描述】:

在我正在编写的程序中,我有一个大的小行星场(使用 PointCloud 实现):我有时遇到的问题是,当相机移动时,小行星有时一碰到屏幕边缘就会消失.如果相机逐渐移动,它们会越来越靠近边缘,然后突然弹出! - 它们已经消失了,即使仍然应该看到它们的一部分。如果相机快速移动,问题就不那么明显了,但如果你仔细观察,你仍然可以发现它。我该如何解决? 这是一个 JS fiddle 的链接,其中包含我用来创建小行星场的代码(您将无法对其进行测试,但您可以查看它): https://jsfiddle.net/yazwz464/

【问题讨论】:

  • 您的对象没有正确的边界球。
  • @gaitat 我该如何解决?
  • 一旦你加载一个对象调用geometry.computeBoundingSphere()

标签: three.js


【解决方案1】:

正如 gaitat 在他的评论中所说,这些点很可能被相机截锥体剔除,因为您的点看起来比它们的几何尺寸大

尝试为对象设置Object3D.frustumCulled = false

【讨论】:

  • 我已经尝试将 pointCloud.frustrumCulled 设置为 false,但没有任何区别。还有什么我可以尝试的吗?
  • 现在任何事情都是猜测 - 你能提供一个重现问题的最小代码吗?最好是 jsfiddle,它可能是一些微不足道、晦涩难懂甚至是库中的错误
  • 我按要求添加了一个指向 JS fiddle 的链接。我以前从未使用过 JS fiddle,所以我可能做得好,也可能做得不好。
  • 这就是小提琴的样子jsfiddle.net/d9Lzdkkr(取自WestLangley answer)您需要添加动画循环、三个库等,以便显示您遇到的问题
【解决方案2】:

我正在更新/修改点/顶点的位置,并且也遇到了这个问题。在我的例子中,我需要更新顶点和计算边界球。

geometry.verticesNeedUpdate = true;
geometry.computeBoundingSphere();

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2022-07-23
    • 2014-10-28
    • 2015-09-23
    • 2014-12-22
    • 2014-06-09
    • 1970-01-01
    • 2015-07-26
    相关资源
    最近更新 更多