Bien le bonjour,

Je recherche le meilleur moyen d'envoyer ma géometrie à OpenGL. Je m'explique : je stocke actuellement dans une classe Mesh un tableau dont chaque éléments est une information sur un sommet

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
struct VertexElement
{
     Vector3 Position;
     Vector3 Normal;
     Vector3 Tangent;
     Vector2 TexCoords;
     ColorRGBA Color;
};
 
class Mesh
{
     ...
 
private:
     typedef std::vector<VertexElement> VertexElementArray;
     VertexElementArray mVertexElements;
};
Donc avec cette structure de donnée je peux créer un seul VBO et lui envoyer les informations de ma géometrié via

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
glBindBuffer( GL_ARRAY_BUFFER_ARB, sizeInBytes, &mVertexElements[0], GL_STATIC_DRAW );
Ou est-ce que je peux stocker à la place de cette façon

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
struct VertexTangent
{
     Vector3 Normal;
     Vector3 Tangent;
};
 
class Mesh
{
     ...
 
private:
     std::vector<Vector3> mVertexArray;
     std::vector<VertexTangent> mVertexTangentArray;
};
Et donc créer deux VBO, un pour les sommets, l'autre pour les informations de normal et tangent. Quelle est selon-vous la manière la plus propre et la plus optimiser pour faire ça ?

Kromagg