2009-04-27 11 views
0

J'ai une image 1024 x 1024 que j'utilise pour une texture dans mon jeu pour l'arrière-plan.iPhone OpenGL ES 2d texture d'arrière-plan

Je me demande si c'est un bon moyen de gérer une grande texture d'arrière-plan.

Comment je le fais actuellement:

texCoord { 0,0,1,0,0,1,1,1 } 
vertice { 0,0,0,height,width,0,width,height } 
texCoordPointer(texCoord) 
vertexPointer(vertice) 

bind the texture 
enable client (texCoordArr, vertexCoordArr) 
drawArray 
disable client (texCoordArr, vertexCoordArr) 

Répondre

2

C'est bien ...

Je ne sais pas si le GL | ES sur l'iPhone prend en charge l'extension glDrawTexOES, mais si elle ne vous peut protéger certaines lignes de code. Cela ne rendra pas le dessin plus rapide.

également quelques conseils supplémentaires:

  • essayer de faire la texture exactement aussi grande que l'écran. Il n'est pas nécessaire de stocker l'image en 1024 * 1024 si la résolution réelle est plus autour de 480 * 320. Si vous zoomez ou faites un panoramique de l'image, c'est une autre chose bien sûr.

  • Vous pouvez économiser un peu de mémoire si vous ne téléchargez pas de mipmaps pour la toile de fond.

+0

Les textures sont tenus d'être la puissance de deux (64x64, 256x256, etc.) jusqu'à 2.2.1, pas sûr 3.0 (il montre des textures de taille variable dans le simulateur 3.0, ne peut pas le tester sur l'appareil encore que je suis encore sur 2.2.1). – melfar

+1

Oui. Il est obligatoire de soit remplir les images à une puissance de deux ou les diviser en morceaux plus petits. –

Questions connexes