J'ai ce tableau de sommet d'un cubeEn utilisant GL_SHORT au lieu de GL_FLOAT dans un tableau de sommet OpenGL ES
float vertex_coordinates [] = {
-12.43796, -12.43796, 12.43796, -12.43796, 12.43796, 12.43796, 12.43796, 12.43796, 12.43796,
12.43796, 12.43796, 12.43796, 12.43796, -12.43796, 12.43796, -12.43796, -12.43796, 12.43796,
12.43796, -12.43796, -12.43796, 12.43796, 12.43796, -12.43796, -12.43796, 12.43796, -12.43796,
-12.43796, 12.43796, -12.43796, -12.43796, -12.43796, -12.43796, 12.43796, -12.43796, -12.43796,
-12.43796, -12.43796, -12.43796, -12.43796, 12.43796, -12.43796, -12.43796, 12.43796, 12.43796,
-12.43796, 12.43796, 12.43796, -12.43796, -12.43796, 12.43796, -12.43796, -12.43796, -12.43796,
12.43796, -12.43796, 12.43796, 12.43796, 12.43796, 12.43796, 12.43796, 12.43796, -12.43796,
12.43796, 12.43796, -12.43796, 12.43796, -12.43796, -12.43796, 12.43796, -12.43796, 12.43796,
-12.43796, 12.43796, 12.43796, -12.43796, 12.43796, -12.43796, 12.43796, 12.43796, -12.43796,
12.43796, 12.43796, -12.43796, 12.43796, 12.43796, 12.43796, -12.43796, 12.43796, 12.43796,
-12.43796, -12.43796, -12.43796, -12.43796, -12.43796, 12.43796, 12.43796, -12.43796, 12.43796,
12.43796, -12.43796, 12.43796, 12.43796, -12.43796, -12.43796, -12.43796, -12.43796, -12.43796,
};
Au moment où je rends à l'aide
glVertexPointer(3, GL_FLOAT, 0, vertex__coordinates);
// texture pointer ...
// colour pointer
glDrawArrays(GL_TRIANGLES, 0, size);
Comment pourrais-je aller sur la conversion de la vertex tableau dans les valeurs qui rendraient exactement le même cube mais en utilisant à la place GL_SHORT
comme deuxième paramètre à glVertexPointer afin d'accélérer mon code?
merci! Cependant, comment pourrais-je appliquer cette logique si j'avais plusieurs cubes de différentes tailles (+ -6 par exemple)? – Dimitris
Sur l'iPhone, les réductions de la taille de la matrice de vertex conduisent à des augmentations de performances significatives. Passer d'un flottant à un court métrage a amélioré ma performance de rendu de 30% par lui-même. Dimitris, pour appliquer cela à différents cas, vous auriez juste besoin de normaliser vos valeurs à virgule flottante à + -32767. Trouvez la plus grande valeur absolue de n'importe quelle coordonnée vertex, et multipliez toutes vos valeurs de vertex par 32767 divisé par cette valeur. Vous pouvez ensuite ajuster votre vue de modèle ou votre matrice de projection pour qu'elle corresponde à la nouvelle taille mise à l'échelle. –
La suggestion de Brad fonctionne, mais seulement si votre modèle est centré autour de (0,0,0). Vous aurez besoin d'une échelle régulière et d'un biais si ce n'est pas le cas. – Alan