2013-01-17 5 views
5

지금까지 바로 표시 목록, 정점 버퍼 및 정점 버퍼 객체 렌더링에 대해 알고 있습니다. 어느 것이 가장 빠릅니까? 어떤 OpenGL 버전이 필요합니까? 무엇을 사용해야합니까?OpenGL 렌더링 모드

+0

"* 정점 버퍼와 정점 버퍼 오브젝트 렌더링 *"이 두 가지는 같은 것입니다. 또한이 질문에 답할 수 없습니다. 대답은 하드웨어에 따라 다르며 드라이버 버전과 워크로드에 따라 다릅니다. –

답변

3

현대 (읽기 : 비 고대) 하드웨어는 직접 모드를 정말로 싫어합니다. 직접 모드를 버텍스 배열로 대체하여 거의 2 배 정도의 성능 향상을 보았습니다.

OpenGL 3 이상은 버퍼 객체 만 지원하며 다른 모든 렌더링 모드는 더 이상 사용되지 않습니다.

표시 목록은 올바르게 사용하는 것이 그리 심각하지 않으며 비 고대 하드웨어에서는 가치가 없습니다.

요약하면 : OpenGL 3+를 사용하는 경우 (V) BO를 사용해야합니다. OpenGL 2를 대상으로하는 경우 적절하게 정점 배열 또는 VBO를 사용하십시오.

5

현재 렌더링의 가장 좋은 (그리고 거의 유일한) 방법은 범용 버퍼, 일명 버텍스 버퍼 객체를 사용하는 것입니다. 그들은 정확하다면 2.1에서 핵심에 있지만 일반적으로 1.5 (ARB_vertex_buffer_object)에 확장으로 나타납니다. 하드웨어 지원 기능이있어 GPU 메모리에 직접 저장 될 수 있고 아마도 저장됩니다.

데이터를로드 할 때 제안 된 사용법을 지정합니다. glBufferData 매뉴얼에서 자세한 내용을 볼 수 있습니다. 예를 들어, GL_STATIC_DRAW은 정적 표시 목록과 매우 유사합니다. 이렇게하면 그래픽 카드에서 그래픽 카드에 대한 액세스를 최적화 할 수 있습니다.