2015-01-11 1 views
1

프로젝트에서 다른 색상으로 많은 모양을 렌더링하고 싶습니다. 나는 QGLMaterial와 모양의 색상을 생성하고이 명령과 함께 QGLBuilder에 모양을 추가많은 QGLMaterial 항목이있는 openGL 성능이 좋지 않음

//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

OpenGL을 직접 사용하는 것이 좋습니다. 각 작업이 얼마나 비용이 많이 드는지 훨씬 더 분명합니다.

여기 Qt는 Uniform을 변경하고 다른 재질로 렌더링 할 때마다 DrawArrays를 호출하지만 올바른 방법은 색상을 정점 속성으로 만들고 모든 지오메트리를 동일한 VAO에 넣는 것입니다. 아마도 Qt를 사용하여 구현할 수도 있지만, 어떻게 해야할지 모르겠습니다.