在一个项目中,我想用不同的颜色渲染很多形状。 我使用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
)时,场景渲染速度非常快,但是颜色很多,速度非常慢。
有没有办法改善这个?
答案 0 :(得分:1)
我真的建议您直接使用OpenGL。每个操作花费你的费用会更加明显。
在这里,Qt可能会更改Uniform并在每次使用不同材质渲染时调用DrawArrays,而正确的方法是将颜色设置为顶点属性并将所有几何体放入相同的VAO中。也许用Qt可以实现,但我不知道如何。