90

AAAhhhh je crois que g compris le prob!
Mais alors, avant ca devais bugger juste en stafant egalement!
Le truc, c que pour faire les deplacement avec camera.x++,etc, il faut que le monde soit centré sur la camera, et avec le bon angle!!!
Or les modifications de la caméra ne modifient pas les vertices!!
Donc le truc serait de faire une translation pour mettre la caméra au centre, puis de faire une rotation pour mettre le bon angle.
Puis, ajouter les modification de la caméra, d'abord les translations puis les rotations!
OUF!!!
Bon ca c une théorie, faut voir pour la pratique...
Mais ma methode est-elle meilleure?ca je c pas
SBIBI AIDE NOUS!!!!! (ou n'importe qui qui sache :-) )

J'ai PM sbibi, qu'il nous aide un peu :-)
ATARI ruuullllleeeezzzzz!!!!!!

91

Oui un peu d'aide nous fera pas de mal ! grin Merci bien ! top
www.wikio.fr/user1921&info=comments

92

Ce que j'ai fait pour les déplacements a bien l'air de'être correcte mais par contre je n'arrive pas bien à gérer les rotions (quans je tourne à gauche ou à droite).
En effet tant que l'objet est encore dans l'écran tout va bien au niveau des déplacements et ça ressemble à quelque chose.
Par contre quand l'objet sort de l'écran (qd je tourne et que l'objet n'est plus dans le champ de vision) les 3/4 du temps ça plante alors que j'ai clippé les faces !

Quand je tourne sur moi même et que le cube sort de l'écran pour revenir de l'autre j'ai l'impression que le cube ne fait qu'un demi cercle. Ce qui fait qu'au lieu d'avancer (qd j'avance) ça recule.

Comment faire pour que le cube ne reviennent à l'écran qu'une fois qu'il ait fait 360 ° ?
Et comment cela se fait-il qu'il s'affiche à l'écran alors qu'il a fait 180° (et donc il devrait être derrière la caméra) ?

www.wikio.fr/user1921&info=comments

93

T'as fait en sorte que les vertices ne s'affichent que si z>0?

Sinon, sBibi n'as plus l'air de venir sur le forum....:-(
ATARI ruuullllleeeezzzzz!!!!!!

94

Il a bcp d'heures de cours, j'ai l'impression...

95

sBibi m'a répondu :

"
bon.. bah le pbl qu'a Raphael... c tt con... le truc ki s'affiche tous les 180 degres et pas 360, c tt simplement pke il affiche les polys mm si ils sont derriere l'ecran... le fait que ca plante, c peut etre un divide by zero, quand il essaye de projeter un point qui se situe en Z == 0...
et pour les rotations, les matrices sont bcpbcpbcp + avantageuese ke les formules classiques

ac les formules classiques, t'as plus de 12 multiplications (une douxaine si tu te demerdes bien...)
avec les matrices tu peux descendre a 7 multiplications, et 6 si tu demerdes bien... soit 2 * moins qu'avec les formules classiques....

et vu que les muls sur Ti prennent dans les 70 cycles (compare aux 4 cycles de la plupart des autres instructions, c enorme), je peux te dire que c'est tres avantageux "

voila!
ca répond pas à la question pour les déplacement, mais ca on doit pouvoir se débrouiller

PS:important! : consulte tes pm!!!!!
ATARI ruuullllleeeezzzzz!!!!!!

96

Merci c'est bien sympa à toi ! top
J'ai bien regardé les mini messages. Ca va bien m'aider ! smile

www.wikio.fr/user1921&info=comments

97

J'ai bien avancé dans mon moteur (en fait j'ai perdu les sources et j'ai tout refait).
Je ne caclule pas la projection lorsque Z=0 mais j'ai toujours un gros problème à cause du clipping 3D.
Quand je travers la scène il y a un moment où tout les polygones se déforment et vont à l'autre bout de l'écran et quand j'avance un peu plus ça redevient normal sauf que je recule au lieu d'avancer !
Es-ce que quelkqu'un aurait une bonne méthode pour empêcher ces distortion et continuer à avancer droit ?
www.wikio.fr/user1921&info=comments

98

.
www.wikio.fr/user1921&info=comments

99

Aïe ! Tu as mis un lien vers : Cgrinocuments and SettingsM DomengeBureauNextGen
Ce n'est pas valide. Il faut uploader ton fichier sur un serveur, puis mettre un lien vers ce fichier.

100

Voici un screen de mon moteur avec le bug de distorstion:

[img]http://membres.lycos.fr/jackiechan/3D engine.gif[/img]

Merci à jackiechan au passage. top
www.wikio.fr/user1921&info=comments

101

J'ai essayé tes formules de rotations:
//=========== Translation = Caméra =========================
x1 = Point3D[i].x + (cax);
y1 = Point3D[i].y + (cay<<10);
z1 = Point3D[i].z + (caz);
//===========================================================
//============ Rotation de l'objet par rapport à la caméra autour de l'axe des Y ===============
xt = (x1*cos(vue) + z1*sin(vue)>>10);
zt = (z1*cos(vue) - x1*sin(vue)>>10);
//========================================================================
//=========================== Projection=====================================
Point2D[i].x = xt/(zt>>10) +Xoff;
Point2D[i].y = y1/(zt>>10) +Yoff; //===========================================================================
et j'obtiend les mêmes bugs que toi...sad

102

Mais je me demande toujours si il faut pas plutôt agir sur Xoff, Yoff, Zoff...?? Enfin, au moins pour Zoff si
Point2D[i].x=(Point3D[i].x<<10)/(Point3D[i].z+Zoff)+Xoff; Point2D[i].y=(Point3D[i].y<<10)/(Point3D[i].z+Zoff)+Yoff;

103

Ouais, je sais pas trop, comment faire...
Maintenant je fais comme ça :

if(0<z_r)
{
Vertex_Buffer[i].x = x_r * 80 / z_r + 80;
Vertex_Buffer[i].y = -y_r * 80 / z_r + 50;
}else
{
Vertex_Buffer[i].x=0;
Vertex_Buffer[i].y=0;
}

Ca marche à peu près sauf que quand z est autour de 0 on voit des faces qui s'affichent et qui prennent tout l'écran mais à près c'est bon.
Enfin, il faut dire que je n'ai pas encore bien réfléchi au problème.
www.wikio.fr/user1921&info=comments