2011-10-28 3 views
2

텍스처에 비트 맵을 사용하려면 텍스처에서 메모리를 절약하기 위해 비트 맵을 가능한 작게해야합니까? (Ofcourse는 텍스쳐가 생성 된 후에 비트 맵 자체를 버린다). 아니면 그냥 512x512 bmp를 사용할 수 있습니까? 그리고 OpenGL은 작은 크기를 기반으로 텍스처를 자동으로 만듭니다 (브레이크 아웃 게임에서 볼이되기 때문에).OpenGL 텍스처의 해상도가 자동으로 축소됩니까?

ldpi 휴대 전화에서 태블릿 (Android ...)까지 다양한 해상도로 사용하려면 비트 맵의 ​​완벽한 크기를 알아내는 데 많은 시간이 걸릴 것으로 예상됩니다. 또는 512,256,128과 같은 동일한 이미지에 대해 서로 다른 크기의 이미지를 만들어야합니다. . . ?

답변

1

는 OpenGL 텍스처는 당신이 (예를 들어, glTexImage2D 사용)로 만들만큼 큰이 질문을 참조하십시오. 비트 맵에서 텍스처를 만들려면 텍스처를 비트 맵만큼 크게 만들거나 비트 맵 데이터의 크기를 직접 조정하십시오. OpenGL이 자동으로 응용 프로그램에 가장 적합한 텍스처 크기를 알아야합니다.

정말로 자동 밉맵 생성에 대해 이야기하고 있다면 이것이 가능하며 Salvatore의 대답을 살펴 봐야합니다. 그러나 텍스처에 "최적"인 크기를 선택하고 완전히 다른 크기의 이미지를 사용하여 데이터를 초기화하는 OpenGL에 대해 실제로 말한다면, 그건 분명 불가능합니다.

+0

좋아, OpenGL은 자동으로 크기가 바뀌었지만 밉 매핑은 2D 전용 게임이므로 찾고있는 것이 아닙니다. 지금은 축소 된 bmp로 갈 예정입니다. – user717572

+0

음, 맞는 답이 없다면 어떻게해야합니까? – user717572

+0

@ user717572 질문을 받아들이지 않을 수도 있습니다. 조금 자기 관심이 들리는 것 같은데, 사실은 당신의 질문에 정확하게 대답했습니다. OpenGL이 텍스처로 사용할 비트 맵을 자동으로 축소 할 수 있는지 알고 싶습니다.이 대답이 마음에 들면, 정답을주었습니다. 아니면 대답에 관해 어떤 불명예 스러움이 있습니까? 그런 다음 자유롭게 물어보십시오. –

1

밉맵 생성에 대해 이야기하고 있습니까? http://www.swiftless.com/tutorials/opengl/mipmap_generation.html

이 페이지는 glu 라이브러리를 사용하여 컴퓨터 응용 프로그램에서 밉맵을 생성하는 방법에 대한 일반적인 예를 제공합니다. 난 정말 android (아직도)에 대해 많이 알지는 못하지만, OpenGL이 그 일을하기 위해 OpenGL에 말하지 않는다면 OpenGL은 밉맵을 사용하지 않을 것입니다. 밉맵을 사용하면 성능과 렌더링 품질이 모두 향상됩니다. 512x512 픽셀의 RAM 밉맵 이미지에는 많은 메모리가 없습니다. 최대 레벨 수를 사용하여 512x512, 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 1x1에서 동일한 이미지를로드하지만 처음 3 또는 4 레벨 만 저장하도록 선택할 수 있습니다. 램의 양이 급격히 증가할수록 더 많은 레벨을 추가할수록 더 높은 레벨은 문자 적으로 단지 몇 바이트의 메모리를 소비하게됩니다.

http://www.gamedev.net/topic/611182-android-and-mipmaps/

관련 문제