许多 QGLMaterial 项目的 openGL 性能不佳
Bad openGL performance with many QGLMaterial items
在一个项目中,我想用不同的颜色渲染很多形状。
我使用 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 改变了一个 Uniform 并在每次使用不同的 material 渲染时调用 DrawArrays,而正确的方法是将颜色设为顶点属性并将所有几何图形放入相同的 VAO。也许用Qt可以实现,但我不知道怎么实现。
在一个项目中,我想用不同的颜色渲染很多形状。 我使用 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 改变了一个 Uniform 并在每次使用不同的 material 渲染时调用 DrawArrays,而正确的方法是将颜色设为顶点属性并将所有几何图形放入相同的 VAO。也许用Qt可以实现,但我不知道怎么实现。