实例几何体视锥剔除

时间:2018-06-25 13:48:42

标签: three.js

我在视锥剔除方面遇到了问题。 我们知道在Three.js中,视锥剔除是默认选择,如果需要,我们可以设置

  

mesh.frustumCulled = false;

我的问题是如何在实例几何体中执行视锥剔除, 如果我启用

  

mesh.frustumCulled = true

所有实例数据都从场景中剔除,而原始实例是从视锥中剔除的, 因为我的原始几何体位于一个位置,所以实例将通过矩阵放置(位置,旋转,比例)。 如three.js示例中所述,我使用了InstanceBufferGeometry和InterleavedBufferAttribute webgl_interactive_instances_gpu

先谢谢了。

1 个答案:

答案 0 :(得分:2)

实例在gpu上发生;截锥体在CPU上淘汰。

如果使用实例化,则可以为网格禁用视锥剔除

Traceback (most recent call last):
File "neural.py", line 27, in <module>
    neural.train(inputs, outputs, 10000)
File "neural.py", line 10, in train
    output = self.think(inputs)
File "neural.py", line 16, in think
    return (dot(inputs, self.weights))
AttributeError: 'neural_network' object has no attribute 'weights'

或者您可以手动指定边界球

mesh.frustumCulled = false;

如果您需要更新边界球,

mesh.geometry.boundingSphere = new THREE.Sphere( new THREE.Vector3(), radius );

three.js r.93