我想要渲染大量的3D物体(即小行星)。我知道我可以将所有几何合并为一个或者我可以使用缓冲几何(这些是相同的吗?)。
然而,我的小行星物体总是来去匆匆。在任何给定的时间内,可以创建更多的小行星并将其放入场景中。
*问题* 如何处理渲染这个动态的对象集,而不必重新创建缓冲区或合并几何(因为这些会对性能产生重大影响)?
我怀疑场景的动态特性或缓冲必须要去。
答案 0 :(得分:2)
处理此问题的一种方法是将所有小行星合并为一个几何体,但要注意每个小行星位于合并几何体中的位置(索引+计数)。然后当需要删除小行星时,只需将该小行星的相关段的位置数据设置为0.例如,假设合并的几何是来自3个小行星,小行星A是0到10,B是10到20; C 20至30.要删除小行星B,只需将合并几何中的位置数据10到20设置为0.
如果需要动态“创建”新的小行星,还需要在合并的几何体中存储创建孔的线段。继续上面的例子,如果你需要添加小行星D,你只需要填充10到20之间的位置数据(从“删除”B)到任何D是。显然,如果在需要创建新的小行星时没有剩下的段孔,则需要放大整个合并的几何体并相应地处理。