为什么在我将4900个节点加载到场景时,性能下降?如果有一个125它没关系,200仍然可以,但如果有更多的渲染帧率正在下降戏剧性?根节点包含包含(模型(在3ds中)+纹理+一些科学计算)的子项,并且所有子项都在0到4899之间的cylce中创建。我已经尝试在root上使用osgUtil :: Optimizer后所有子项都到位但仍然没有改进。试图将所有节点放在一个geode中,但它也没有帮助。如何在性能和节点数量之间取得平衡?
答案 0 :(得分:1)
4900个节点似乎有很多节点!
您应该开始阅读LOD
和PagedLOD
。
PageLOD
将改善效果。这个想法是这样的(想象第一个图像更远):
由于你距离很远,你不需要很多细节。但是当你放大时,你想看到那些细节。您必须指定每个LOD
级别中的模型以及您希望如何激活它们。这是棘手的部分。
另外,检查您是否可以共享节点。例如,您只需创建一个轮子,而不是使用4个不同的轮子。然后,添加4 PositionAttitudeTransform / MatrixTransform 并将轮节点添加到每个节点。
同样适用于StateAttributes
,在可能的情况下分享它们!
最后,如果您有很多重复的geoms,请查看几何实例化。