OpenSceneGraph渲染了很多节点

时间:2015-04-03 21:16:29

标签: openscenegraph

为什么在我将4900个节点加载到场景时,性能下降?如果有一个125它没关系,200仍然可以,但如果有更多的渲染帧率正在下降戏剧性?根节点包含包含(模型(在3ds中)+纹理+一些科学计算)的子项,并且所有子项都在0到4899之间的cylce中创建。我已经尝试在root上使用osgUtil :: Optimizer后所有子项都到位但仍然没有改进。试图将所有节点放在一个geode中,但它也没有帮助。如何在性能和节点数量之间取得平衡?

1 个答案:

答案 0 :(得分:1)

4900个节点似乎有很多节点!

您应该开始阅读LODPagedLODPageLOD将改善效果​​。这个想法是这样的(想象第一个图像更远):

Low detail

High detail

由于你距离很远,你不需要很多细节。但是当你放大时,你想看到那些细节。您必须指定每个LOD级别中的模型以及您希望如何激活它们。这是棘手的部分。

另外,检查您是否可以共享节点。例如,您只需创建一个轮子,而不是使用4个不同的轮子。然后,添加4 PositionAttitudeTransform / MatrixTransform 并将轮节点添加到每个节点。 同样适用于StateAttributes,在可能的情况下分享它们!

最后,如果您有很多重复的geoms,请查看几何实例化