2010-01-28 5 views
1

Je développe une application de puzzle mignonne - http://gotoandplay.freeblog.hu/categories/compactTangram/-, et pour des raisons de performance j'ai décidé de rendre la vue avec OpenGL. J'ai commencé à l'apprendre, je suis d'accord avec les tampons, les sommets, les textures d'une manière vraiment basique. La situation: Dans l'utilisateur du jeu manipule 7 puzzlePiece, chacun a 5 sous-couches pour obtenir une jolie sensation d'éclairage. La plupart des textures sont 256x256. L'utilisateur ne manipule qu'une seule pièce à la fois, le reste est inchangé pendant le jeu. Un squelette d'application sans graphique ici: http://gotoandplay.freeblog.hu/archives/2009/11/11/compactTangram_v10_-_puzzle_completement_test/Comment organiser l'arborescence de couches OpenGL ES 1.x 2D?

La question: Comment dois-je les organiser? Est-ce une bonne idée de "prédire" les états de la pièce dans des framebuffers (?)/Textures (?) Séparés ou je peux simplement redessiner chaque pièce/calque (1 + 7 * 5 = 36 sprite) dans un pas de temps? Si j'utilise "predraw", alors que dois-je faire? Dessin à un framebuffer puzzePiece? Alors comment puis-je le dessiner dans le framebuffer de la scène? Ou est-il un moyen plus simple de "fusionner" des textures? J'espère que vous pouvez comprendre ma question, si elle semble trop faible s'il vous plaît jeter un oeil à mon idée sur la façon de rendre une pièce réelle dans mon blog (il y a une implémentation flash simple de ce que je vais faire) ici: http://gotoandplay.freeblog.hu/archives/2010/01/07/compactTangram_072_-_tan_rendering_labs/

+0

Quelque chose glCopyTexSubImage2D? Ou glCopyTexImage2D? Je veux juste fusionner 5 textures en une avec des propriétés subTexture variables, je suppose. – Geri

Répondre

0

Une façon courante de manipuler les textures consiste à emballer toutes vos images dans un 'atlas de texture' au début du jeu/niveau.

Votre taille maximale de texture est 1024x1024 et vous pouvez en avoir environ trois en mémoire sur l'iPhone.

Lorsque vous avez toutes les images dans ces «super textures», vous pouvez simplement dessiner la zone pertinente de la grande texture. Cela a l'avantage de lier moins souvent les textures et d'obtenir de meilleures performances, tout en supprimant tout espace supplémentaire nécessaire à la mise en place de petites images dans des textures à la puissance de deux.

+0

Ma question était erronée. – Geri