2009-10-25 4 views
1

Word sur la rue est que glDrawElements est beaucoup plus rapide que glDrawArrays. Donc, je veux tout afficher en utilisant glDrawElements. Le problème que j'ai est que j'ai un tas d'images que je veux apparaître sur l'écran. Chaque image est dans une texture différente.glDrawElements et plusieurs images

Est-il possible d'utiliser glDrawElements pour cela?

Comment puis-je changer la texture

Répondre

0

L'indexation de vertex (c'est-à-dire glDrawElements) peut réduire considérablement la taille de votre tampon de vertex si vous avez souvent des sommets partagés entre plusieurs primitives. Par exemple, si vous dessinez un maillage avec GL_TRIANGLES, vous voudrez certainement utiliser l'indexation. Si vous dessinez simplement un tas de triangles disjoints, il n'y a pas beaucoup de raisons d'utiliser l'indexation.

Peu importe si vous utilisez glDrawElements ou glDrawArrays, il est toujours souhaitable de réduire le nombre d'appels de tirage. L'utilisation d'un atlas de texture vous permet de combiner plusieurs appels de dessin qui seraient autrement séparés avec des appels à glBindTexture.

0

Vous ne pouvez pas, directement.

Ce que vous pouvez faire est de faire un atlas de texture, en faisant une grande texture contenant toutes vos petites textures, puis ajuster votre coordonnées de texture en conséquence. En outre, où avez-vous entendu parler de la comparaison entre glDrawArrays et glDrawElements? Je n'ai jamais vu une comparaison convaincante, tous les cas inclus.

+0

Je l'ai eu à partir d'un tutoriel vidéo sur un site appelé 71 au carré. Je suppose que pour l'iphone de toute façon ... que faire 3 appels gldrawarrays vs 1 appels gldrawelement était fou plus lent en raison du fait que le cpu est utilisé et le cpu iphone ne pouvait pas suivre. Faire l'un appel a utilisé l'accélération matérielle graphique pour faire la même chose. – Mel

Questions connexes