Bonjour,
J'utilise la lib3ds pour charger des mesh dans mon appli 3D.
Je suis un peu surpris car toutes les informations de vertex (position, normale, couleur) du mesh sont correctes...sauf les uv! Du moins avec tous les modèles que j'ai essayé, les textures ne sont pas correctement appliquées sur l'objet.
Voila mon code de chargement des vertex buffers:
Code :
- struct VERTEX
- {
- Vector3 position;
- Vector3 normal;
- Color diffuse;
- Vector2 texCoords0;
- Vector2 texCoords1;
- };
- typedef unsigned short INDEX;
- void loadMesh ( Lib3dsMesh* currentMesh )
- {
- unsigned int currentIndex = -1;
- unsigned int i, index;
- Lib3dsFace* currentFace;
- vector <VERTEX> vertices ( currentMesh->points ); // tableau utilisé pour la création du vertex buffer
- vector <INDEX> indices ( currentMesh->faces * 3 ); // tableau utilisé pour la création de l'index buffer
- for ( i = 0; i < currentMesh->faces; ++i )
- {
- currentFace = ¤tMesh->faceL[i];
- for ( j = 0; j < 3; ++j )
- {
- index = currentFace->points[j];
- indices[++currentIndex] = index;
- vertices[index].position = currentMesh->pointL[index].pos;
- if ( currentMesh->texelL ) vertices[index].texCoords0 = currentMesh->texelL[index];
- }
- }
- // etc...
- }
|
Est-ce que ma manière de faire est incorrecte? Ou est-ce que ça pourrait provenir de la lib elle-même?
...Pour une fois, je préférerais que ce soit moi
Message édité par akalash47 le 18-12-2006 à 14:59:25