2012-01-13 4 views
0

95 %의 시간 동안 변경되지 않은 VBO가 있다고 가정합니다. 그러나 다른 5 %는 애니메이션입니다. glBufferData을 호출 할 때 OpenGL에 어떤 사용법 힌트를 줄 것인지 잘 모르겠습니다.거의 움직이지 않는 버텍스에 대한 OpenGL VBO 사용 힌트

한편으로는 95 %의 시간에 GL_STATIC_DRAW 버퍼처럼 동작합니다. 반면에 애니메이션에는 GL_STREAM_DRAW을 사용하는 것이 좋습니다. 나는 타협하여 GL_DYNAMIC_DRAW을 전달해야합니까?

애니메이션 중에 애니메이션을 결합한 후 glBufferDataGL_STREAM_DRAW으로 호출하고 애니메이션 완료시 GL_STATIC_DRAW으로 리 버퍼링 하시겠습니까?

답변

4

유일하게 가능한 대답은 다른 플랫폼에 가장 적합한 것이 있는지 확인하고 시도하는 것입니다. OpenGL은 성능을 정의하지 않으며 모든 드라이버는 이러한 종류의 것들을 다르게 구현할 것입니다. 힌트는 힌트이다; 그들은 반드시 아무것도하지 않습니다.

사실 AMD는 사용법에 대한 힌트를 완전히 무시합니다. 실제로 버퍼를 사용하는 방법에 기반하여 수행합니다. GL의 사용자가 너무 많아서 잘못 사용했기 때문입니다.