Historique des modifications - Message

Message #8754

Sujet: Texture Coordinates sur Vertex partagés


TypeDateAuteurContenu
Correction acceptée12-09-2010 19:08:11Zorian
Texte original:
première chose il vaut mieux utiliser glDrawArrays que glDrawElement plus rapide, et plus orienté VBO ...
deusio tu ne spécifies pas de normale donc il est normal que les faces de ton cube ne soient pas correctement orientées

quand on définit des faces il y a un ordre ( "clock-wise" ou "counter clock-wise" ), et suivant le cas les faces sont tournées d'origine vers l'intérieur("counter...") ou l'extérieur ("clock-wise")

exemple: 'tiré de mon code pour un cube'

clock-wize:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 3; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 1;
                    tmp->indices[1].vertex[0] = 0; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 2;

counter clock-wize:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 1; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 3;
                    tmp->indices[1].vertex[0] = 2; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 0;

bon par contre tu notes que les vertices ne sont pas dans l'ordre donc les indices ... et puis bien sûr tu peux les "décaler"
Correction proposée:
première chose il vaut mieux utiliser glDrawArrays que glDrawElement plus rapide, et plus orienté VBO ...
deusio tu ne spécifies pas de normale donc il est normal que les faces de ton cube ne soient pas correctement orientées

quand on définit des faces il y a un ordre ( "clock-wise" ou "counter clock-wise" ), et suivant le cas les faces sont tournées d'origine vers l'intérieur("counter...") ou l'extérieur ("clock-wise")

exemple: 'tiré de mon code pour un cube'

clock-wise:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 3; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 1;
                    tmp->indices[1].vertex[0] = 0; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 2;

counter clock-wise:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 1; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 3;
                    tmp->indices[1].vertex[0] = 2; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 0;

bon par contre tu notes que les vertices ne sont pas dans l'ordre donc les indices ... et puis bien sûr tu peux les "décaler"
Correction en attente12-09-2010 19:07:50Zorian
Texte original:
premiere chose il vaut mieux utiliser glDrawArrays que glDrawElement plus rapid, et plus arrienter VBO ...
deusio tu ne spécifie pas de normale donc il est normale que les face de ton cube ne soit pas correctement orienter

quand on définie des faces il y a un ordre ( "clock-wize" ou "counter clock-wize" ), et suivant le cas les face sont tournée d'origine vers l'intérieur("counter...") ou l'extérieur ("clock-wise")

example: 'tiré de mon code pour un cube'

clock-wize:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 3; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 1;
                    tmp->indices[1].vertex[0] = 0; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 2;

counter clock-wize:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 1; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 3;
                    tmp->indices[1].vertex[0] = 2; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 0;

bon par contre tu note que les vertices ne sont pas dans l'ordre donc les indices ... et puis biensur tu peut les "décalées"
Correction proposée:
première chose il vaut mieux utiliser glDrawArrays que glDrawElement plus rapide, et plus orienté VBO ...
deusio tu ne spécifies pas de normale donc il est normal que les faces de ton cube ne soient pas correctement orientées

quand on définit des faces il y a un ordre ( "clock-wise" ou "counter clock-wise" ), et suivant le cas les faces sont tournées d'origine vers l'intérieur("counter...") ou l'extérieur ("clock-wise")

exemple: 'tiré de mon code pour un cube'

clock-wize:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 3; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 1;
                    tmp->indices[1].vertex[0] = 0; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 2;

counter clock-wize:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 1; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 3;
                    tmp->indices[1].vertex[0] = 2; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 0;

bon par contre tu notes que les vertices ne sont pas dans l'ordre donc les indices ... et puis bien sûr tu peux les "décaler"
Création du message10-09-2010 13:29:35Magun
première chose il vaut mieux utiliser glDrawArrays que glDrawElement plus rapide, et plus orienté VBO ...
deusio tu ne spécifies pas de normale donc il est normal que les faces de ton cube ne soient pas correctement orientées

quand on définit des faces il y a un ordre ( "clock-wise" ou "counter clock-wise" ), et suivant le cas les faces sont tournées d'origine vers l'intérieur("counter...") ou l'extérieur ("clock-wise")

exemple: 'tiré de mon code pour un cube'

clock-wise:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 3; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 1;
                    tmp->indices[1].vertex[0] = 0; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 2;

counter clock-wise:

Code c++ :


                    tmp->vertices[0].Pos = core::math::vector3df( size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[1].Pos = core::math::vector3df(-size.x/2,-size.y/2, -size.z/2);
                    tmp->vertices[2].Pos = core::math::vector3df( size.x/2, size.y/2, -size.z/2);
                    tmp->indices[0].vertex[0] = 1; tmp->indices[0].vertex[1] = 2; tmp->indices[0].vertex[2] = 3;
                    tmp->indices[1].vertex[0] = 2; tmp->indices[1].vertex[1] = 1; tmp->indices[1].vertex[2] = 0;

bon par contre tu notes que les vertices ne sont pas dans l'ordre donc les indices ... et puis bien sûr tu peux les "décaler"

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
121 invités en ligne
membre en ligne: -
RSS Feed