Bonjour à tous!
Je débute actuellement en programmation 3D avec Irrlicht. Voici mon problème:
J'utilise une camera FPS dans ma scene, et selon le mouvement ou l'endroit ou elle se place même quand l'objet est entièrement dans le champs, tous les triangles ne s'affichent pas.
Mon objet est un cube à l'écran, et pour cela je me suis inspiré de l'exemple n°3 (customSceneNode). Je défini donc 8 vertices de cette mannière:
Vertices[0] = video::S3DVertex(0,0,0, 0,0,0, video::SColor(255,0,255,255),0,1);
Vertices[1] = video::S3DVertex(0,10,0, 0,0,0,video::SColor(255,255,0,255),1,1);
Vertices[2] = video::S3DVertex(10,0,0, 0,0,0,video::SColor(255,255,255,0),1,0);
Vertices[3] = video::S3DVertex(10,10,0, 0,0,0,video::SColor(255,0,255,0),0,0);
Vertices[4] = video::S3DVertex(0,0,10, 0,0,0,video::SColor(255,0,255,0),0,0);
Vertices[5] = video::S3DVertex(0,10,10, 0,0,0,video::SColor(255,0,255,0),0,0);
Vertices[6] = video::S3DVertex(10,0,10, 0,0,0,video::SColor(255,0,255,0),0,0);
Vertices[7] = video::S3DVertex(10,10,10, 0,0,0,video::SColor(255,0,255,0),0,0);
Ensuite, je crée un tableau d'indices pour l'affichage: (je n'affiche que quatres faces pour l'instant)
u16 indices[] = {0,1,2, 2,1,3,\
4,5,6, 6,5,7,\
0,4,2, 2,4,6,\
2,6,3, 6,3,7};
Et maintenant, le rendu:
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
driver->drawIndexedTriangleList(&Vertices[0], 8, &indices[0], 8);
Au niveau du système, je suis sous Mandriva 2007, avec OpenGL 1.2
Je voudrais savoir si c'est normal, ou bien un problème dans mon code.
Merci d'avance.
Hors ligne
Je ne suis pas encore assez réveillé pour regarder ça en détail, mais pourquoi n'utilises-tu pas ISceneManager::addCubeSceneNode ?
Hors ligne
Bin à terme je voudrais écrire une routine qui affiche n'importe quel objet à six faces, le cube n'est qu'un simple exemple.
Je pense que le problème vient du déplacement de la caméra, car à présent j'arrive à afficher mon cube, mais seulement quand je place la camera correctement.
Dernière modification par monlujeni (21-01-2007 13:29:45)
Hors ligne
Hello,
Je commence à me demander si c'est pas un bug d'irrlicht (1.2 ?) car j'ai noté le même genre de problème...
Essaye en désactivant le backface culling et l'automatic culling pour voir si ça marche pas mieux.
Hors ligne
Non ça ne marche pas mieux, mais si c'est lié au moteur lui même je vois pas vraiment.
En tout cas merci de m'avoir accordé du temps!
A+.
Hors ligne