Bonjour à tous,
Dans mes données brutes, pour une géométrie on peut avoir plusieurs listes de triangles avec pour chacune d'entre elle la texture et le matériau à utiliser.
Est-ce qu'il faut voir ces listes de triangles comme des "sous géométries" où chacune d'entre elle aurai ses données, ses buffers sa texture et son matériaux et le modèle se résumant qu'à une liste de géométrie ?
Ou alors est-ce qu'il faut concaténer toutes les données et garder quelque part les différentes parties de cette géométrie pour l'affichage ?
En gros, est-ce que je fais
ou
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 class CSubset { public: void Draw(); private: //Le buffer de vertex //Le buffer d'index //Le nombre de triangle //Le matériaux //La texture //La déclaration de vertex }; CSubset::Draw() { //Positionnement du buffer de vertex //Positionnement du buffer d'index //Positionnement du matériau //Positionnement de la texture //Positionnement de la déclaration //Dessine de n triangles } class CModel { public: void Draw(); private: std::vector<Subset> m_oSubsets; } CModel::Draw() { for each(Subset oSubset in m_oSubsets) oSubset.Draw(); }
Je vous demande ça car j'ai jamais été confronté à avoir plusieurs matériaux ou un seul maillage.
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 class CSubset // Ou plutôt une structure { private: // La texure // Le matériaux // La déclaration // Le nombre de primitive } class CModel { public: void Draw(); private: //Le buffer de vertex //Le buffer d'index std::vector<Subset> m_oSubsets; } CModel::Draw() { //Positionnement du buffer de vertex //Positionnement du buffer d'index unsigned long ulTriangleIt = 0; for each(Subset oSubset in m_oSubsets) { // Positionnement de la texture d'oSubset // Positionnement du matériaux d'oSubset // Positionnement de la déclaration d'oSubset //dessin de ulTriangleIt à oSubset.GetTriangleCount(); ulTriangleIt += oSubset.GetTriangleCount(); } }
Merci beaucoup
A bientôt
Partager