저는 현재 Touhou-esque 총알 지옥 사수 게임을 개발 중입니다. 화면은 총알로 채워질 것입니다. (인스턴스화는 내가 원했던 것입니다.)하지만 저는 이것을 오래된 하드웨어에서 사용하기를 원합니다. 그래서 저는 지금이 라인을 따라 뭔가를하고 있습니다. 색상, 텍스처, 등등. 내가 이것을 알아낼 때까지.OpenGL 2D 성능 팁
glVertexPointer(3, GL_FLOAT, 0, SQUARE_VERTICES);
for (int i = 0; i < info.centers.size(); i += 3) {
glPushMatrix();
glTranslatef(info.centers.get(i), info.centers.get(i + 1), info.centers.get(i + 2));
glScalef(info.sizes.get(i), info.sizes.get(i + 1), info.sizes.get(i + 2));
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, SQUARE_INDICES);
glPopMatrix();
}
이전 하드웨어에서 작동하기를 원하기 때문에 셰이더와 기타 등을 피하려고합니다. 거기에 설치가 약 80 다각형에 나를 실패합니다. 나는 이것에서 적어도 몇 백을 얻으려고합니다. info
은 렌더링을위한 모든 장점을 가진 구조체입니다. 몇 가지 벡터 외에는 그다지 유용하지 않습니다.
저는 OpenGL을 처음 접했지만 적어도 할 수있는 모든 것을 들었습니다. 이 게임은 2D 게임입니다. SDL에서 Opengl으로 바꿨습니다. 더 재미있는 효과를 더 쉽게 만들어주기 때문입니다. 분명히 SDL은 다르게 작동하지만,이 문제는 결코 그것을 사용하지 못했습니다.
여기까지 뭔가 잘못되었습니다. 이전 하드웨어 (OpenGL 1.x)의 인스턴스를 올바르게 구현하려면 어떻게해야합니까? 또한 성능 향상을위한 조언을 제공하십시오.
GDebugger와 같은 도구를 사용하여 프로필을 만들었습니까? 그러면 병목 현상이 나타날 것입니다. – Pubby
가능한 한 드로우 콜을 사용하고 모든 것을 VA에 넣으십시오 (모든 번역은 CPU 측에서 직접하십시오). – harold