我想基于它们与焦点的接近度来调整网格的不透明度。现在,我只是迭代网格并根据它们与焦点的距离来调整它们的不透明度。
在伪代码::
set_opacities: () ->
for mesh in @group.children
# we have the camera looking at this point "focus"
# objects in the focal point should become opaque
distance_to_focus = mesh.position.distanceTo(focus)
opacity = @options.delta / distance_to_focus
mesh.material.opacity = opacity
这适用于少量网格,但是当有几千个网格时可能会相当昂贵。我没有太深入地调查着色器。但是,我觉得是时候利用着色器来提高性能了。如何根据使用着色器到焦点的距离来更改网格的不透明度?三个人是否为这种情况建立了内置,还是自己编写?
还有其他可能值得研究的策略吗?在这种情况下,合并网格并不理想,因为我不断添加更多因此,我认为不断重新计算整个几何图形会变得很昂贵。