2012-12-30 2 views
0

현재 2D 장면의 각 스프라이트에 대해 glDrawElements을 호출 중입니다. 나는 이것을 바꾸고 싶다.2D 스프라이트 일괄 처리

장면은 오프 스크린 렌더링 버퍼 (FBO)로 구성되며 현재 전체 장면을 구성하는 데 사용되는 스프라이트 시트 텍스처는 하나뿐입니다.

만약 내가 모든 glDrawElements을 하나의 커다란 버퍼에 큐잉했다면, 나는 그것이 작동 할 것이라고 생각하지만, 미래에는 (필자가 하나 이상의 스프라이트 시트 텍스쳐를 가질 때) 현재 버퍼를 커밋해야만 할 것인가? glBindTexture으로 전화 할 때마다?

FBO에 깊이 버퍼가 있다는 것은 내가 묻는 이유이며, 스프라이트를 그리는 순서가 중요하지 않을 수 있습니다. (모든 스프라이트를 하나의 스프라이트로 그릴 수 있는지 궁금합니다. 텍스처를 그린 다음 다른 텍스처의 모든 스프라이트를 그립니다 (Z 축을 사용하여 정렬하는 순서는 무시하십시오).

답변

2

실제로 블렌딩이 필요하지는 않지만 실제로 순서는 중요하지 않습니다.

즉, 하나의 그리기 호출을 사용하여 모든 스프라이트를 그리고 텍스처 좌표를 사용하여 사용할 스프라이트를 선택하는 것을 의미합니다. (단일) 텍스처에는 단순히 al l 스프레이가 나란히 있습니다.

+0

텍스처 아트라스가 OpenGL 구현의 최대 텍스처 크기 제한을 초과 할 수 없다면, 제 경우에는 쓸모가 없습니다. 필자의 스프라이트 시트는 주어진 최대 텍스처 크기에 대해 가능한 한 최적이되도록 내 도구를 사용하여 만들어졌습니다. –