2

プロジェクトでは、さまざまな色で多くの形状をレンダリングしたいと考えています。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、シーンは非常に高速にレンダリングされますが、色の種類が多い場合は非常に遅くなります。

これを改善する方法はありますか?

4

1 に答える 1

2

OpenGL を直接使用することを強くお勧めします。各操作にどれだけの費用がかかるかがより明確になります。

ここで、Qt は異なるマテリアルでレンダリングするたびに Uniform を変更し、DrawArrays を呼び出す可能性がありますが、これを行う正しい方法は、色を頂点属性にし、すべてのジオメトリを同じ VAO に入れることです。おそらくQtで達成することは可能ですが、方法がわかりません。

于 2015-01-11T20:58:45.680 に答える