2010-10-08 3 views
0

Existe-t-il un moyen d'utiliser des tampons de taille différente pour glDrawElements? Je veux en quelque sorte mapper les sommets aux coordonnées de texture, de sorte que le tampon de coordonnées de texture puisse être réellement plus petit que le tampon de vertex. Exemple: le tampon de sommet a 16 sommets et le tampon de coordonnées de texture a 6 sommets.Taille différente des tampons pour les coordonnées de sommet et de texture?

vertex_buffer[0] -> texture_coordinates_buffer[0] 
vertex_buffer[1] -> texture_coordinates_buffer[1] 
vertex_buffer[2] -> texture_coordinates_buffer[2] 

vertex_buffer[3] -> texture_coordinates_buffer[3] 
vertex_buffer[4] -> texture_coordinates_buffer[1] 
vertex_buffer[5] -> texture_coordinates_buffer[2] 

... 

Merci pour chaque petit indice où chercher quoi.

Répondre

0

Vous ne pouvez pas faire cela en OpenGL (ou Direct3D). Le nombre d'éléments dans un tableau d'attributs doit être égal, par ex. Si vous avez un VBO fait de 64 sommets, vous devrez avoir 64 texcoords, 64 normaux, etc.

La seule façon d'avoir ce mapping particulier serait de passer les texcoords comme données tampon supplémentaires et d'utiliser gl_VertexID pour le récupérer et résolvez votre mapping.

Voir l'extension texture_buffer_object.

Questions connexes