Threejs:禁用某些对象的视锥剔除

  • 本文关键字:视锥 对象 Threejs three.js
  • 更新时间 :
  • 英文 :


为了解决z-fighting的问题,我将相机的近远限制在一个小范围内。但是当我想添加一个更大的对象时,它被视锥体剔除。

我尝试了object3d.frustumCulled属性,没有按预期工作,原因如下: https://github.com/mrdoob/three.js/issues/12170

那么,有没有办法确保某些特定物体不会在不更换远近相机的情况下被剔除?感谢。

剔除并不意味着是否绘制了对象。它可以绘制或不绘制,具体取决于它的位置。这是一个优化,试图说这样的话:

嘿,我有一个非常便宜的检查(平面/球体相交(,我可以做并告诉你是否需要尝试绘制它。

因此,您执行了廉价检查,如果保证对象完全不在视锥体之外,则永远不会发出绘制调用。如果它相交,您必须发出绘制调用,但如果实际上没有三角形在视锥中,您可能仍然看不到任何东西。

如果您下载类似 specter 的东西.js并检查您的绘制调用,您会发现frustumCulled = false您会得到场景中每个对象的绘制调用。您的屏幕可能是空的。

最新更新