许多QGLMaterial项目的openGL性能不佳

时间:2015-01-11 20:50:04

标签: qt opengl qt3d

在一个项目中,我想用不同的颜色渲染很多形状。 我使用QGLMaterial创建了形状的颜色,并使用以下命令将形状添加到QGLBuilder:

//Build SceneNode
m_lpBuilder->newSection();
...
m_lpBuilder->currentNode()->setMaterialIndex(idxMaterial); //idx in range of 0 to 1000
m_lpBuilder->currentNode()->setEffect(QGL::LitMaterial);

当我只有几种颜色(QGLMaterial)时,场景渲染速度非常快,但是颜色很多,速度非常慢。

有没有办法改善这个?

1 个答案:

答案 0 :(得分:1)

我真的建议您直接使用OpenGL。每个操作花费你的费用会更加明显。

在这里,Qt可能会更改Uniform并在每次使用不同材质渲染时调用DrawArrays,而正确的方法是将颜色设置为顶点属性并将所有几何体放入相同的VAO中。也许用Qt可以实现,但我不知道如何。