#1 

21-01-2007 12:14:05

monlujeni
Membres
Date d'inscription:
Messages: 3
IP: 82.225.236.111
Courriel

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


#2 

21-01-2007 12:19:12

Aranoth
Membres
Avatar de Aranoth
Date d'inscription:
Messages: 242
IP: 83.193.6.118
Courriel  Site web

Je ne suis pas encore assez réveillé pour regarder ça en détail, mais pourquoi n'utilises-tu pas ISceneManager::addCubeSceneNode ?

Hors ligne


#3 

21-01-2007 12:29:09

monlujeni
Membres
Date d'inscription:
Messages: 3
IP: 82.225.236.111
Courriel

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.


Hors ligne


#4 

21-01-2007 12:35:02

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 90.5.234.101
Courriel  Site web

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.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#5 

21-01-2007 16:01:39

monlujeni
Membres
Date d'inscription:
Messages: 3
IP: 82.225.236.111
Courriel

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


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
119 invités en ligne
membre en ligne: -
RSS Feed