Qt openGL性能差,有许多QGLMaterial项

Qt openGL性能差,有许多QGLMaterial项,qt,opengl,qt3d,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()->

在一个项目中,我想用不同的颜色渲染很多形状。 我使用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
)时,场景渲染速度非常快,但使用大量颜色时渲染速度非常慢


有没有改进的方法?

我真的建议您直接使用OpenGL。更明显的是,每项操作的成本是多少

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