답변:
glStart () / glEnd () 대신 VBO를 사용하십시오. 이를 통해 데이터를 GPU 메모리로 전송하는주기가 줄어 듭니다.
glStart()/glEnd()
.
이것들은 OpenGL에 관한 Apple의 문서 참조에 있지만 모든 작은 도움이 되었습니까? ;)
OpenGL 성능 최적화 : OS X에서 OpenGL 데이터 처리량을 최적화 하는 기본 사항
(이 마지막 것은 샘플 애플리케이션입니다)
정점 최적화
OpenGL 확장에 대해 다루는 주제 (Apple에서도 제공)에 사용할 수있는 비디오가 매우 많습니다. 그중 일부는 OS X에 따라 다르지만 일부는 더 일반화되어 Windows 및 Linux에 적용될 수 있습니다.
여기 에서 비디오를 찾을 수 있습니다 . 그러나 iTunes와 Apple 계정이 있어야 볼 수 있습니다 (그러나 무료입니다! : D).
글쎄, 실제로는 실제로하려는 계획에 달려 있지만 기본 사항은 다음과 같습니다.
GPU는 배고픈 짐승이지만 CPU는 매우 소중합니다. GPU에 최대한 많이 상쇄하십시오. 현재 OpenCL, CUDA 및 Thrust와 같은 우수한 라이브러리를 사용하여이 작업을 수행 할 수 있습니다.
쉐이더에서 조명을 수행하십시오. 이것은 당신의 정신을 유지하는 데 도움이 될뿐만 아니라 툰 쉐이더와 디퍼 드 라이팅 과 같은 것들을 매우 시원하게 해줍니다 .
입자가 빨라요. OpenGL 포인트 스프라이트를 사용하는 경우에도 마찬가지입니다.
로컬 변수에 액세스 할 때 glGet *을 사용하지 마십시오 (예 :
이 전화는 정말 느립니다
내부에서 변경되지 않는 경우 glBegin-glEnd 절 (glColor 또는 glNormal 등) 외부에서 사용하지 않는 항목을 이동하십시오. OpenGL은 상태 머신이며 마지막 값을 사용합니다.