2009-06-29 4 views
3

OpenGL을 배우고 있으며 최근에 glGenTextures에 대해 발견했습니다. 여러 사이트에서 그 기능을 설명하지만 속도와 특히 메모리 측면에서 어떻게 작동하는지 궁금합니다.glGenTextures 속도와 메모리 문제

glGenTextures를 호출 할 때 정확히 무엇을 고려해야합니까? 더 나은 속도를 위해 텍스처 언로드와 리로드를 고려해야합니까? 얼마나 많은 텍스처가 표준 게임에 필요합니까? 메모리와 속도의 한계를 극복하기위한 해결 방법은 무엇입니까?

답변

4

manual에 따르면 glGenTextures는 "차원"이없는 텍스처 "이름"(예 : ID) 만 할당합니다. 따라서 실제로는 텍스처 메모리를 할당하지 않고 있으며 실제의 텍스처 메모리 할당에 비해 오버 헤드가 거의 없습니다.

glTexImage 실제로 텍스처 당 사용되는 텍스처 메모리의 양을 제어합니다. 응용 프로그램에서 텍스처 메모리를 가장 잘 사용하는 방법은 프레임 당 사용되는 텍스처의 최대 작업 세트, 사용 가능한 하드웨어의 전용 텍스처 메모리 및 텍스처 메모리의 대역폭을 비롯한 여러 요소에 따라 다릅니다.

일반적인 게임에 대한 질문 - 어떤 종류의 게임을 만드십니까? 콘솔 게임은 블루 레이 디스크 용량을 채우기 시작했습니다. (처음에는 블루 레이에 맞출 것으로 예상되지 않은 PS3 타이틀에서 작업했습니다.) 이 공간의 대부분은 텍스처입니다. 반면에 다운로드 가능한 웹 게임은 훨씬 더 제한적입니다.

본질적으로 합리적인 게임 디자인으로 작업하고 예상치를 산출해야합니다. 1. 게임에 사용 된 총 텍스처. 2. 한 번에 사용 된 최대 텍스처.

그런 다음 대상 하드웨어를보고이를 모두 적용하는 방법을 결정해야합니다.

여기에 가야 오래된 게임 개발자 기사에 대한 링크가 당신이 시작의 : 링크에 대한 http://number-none.com/blow/papers/implementing_a_texture_caching_system.pdf

+0

감사합니다 - 흥미로운 기사! –