3D
==
Voila, je suis très cablé 3D en ce moment et j'ai fais quelques petites recherches dont celle-ci que je vous propose, la source n'est en fait pas très importante, elle est juste içi pour illustrer la "formule" de ma création.
Voila, j'ai vu la source de TheWhiteShadow, et malgrés quelques minutes de réflexion je n'ai pas compris sa méthode de projection alors j'ai décidé de m'y mettre (ça veut dire papier rêgle crayon et CERVEAU) et puis avec un peu de Thalès j'ai pondu ceci :
scr01 = hauteur de la zone d'affichage /2
scr02 = largeur de la zone d'affichage / 2
FinalX = (Pt3D.X - scr01 * (256 / (256 + Pt3D.Z))) + scr01
FinalY = (Pt3D.Y - scr02 * (256 / (256 + Pt3D.Z))) + scr02
Explications
========
Le 256 tout d'abord : il revient souvent et en fait correspond à la distance de l'observateur à l'écran, on peut la modifier cela n'aura qu'une faible répercution sur le rendu final.
Le reste : regardez la capture, qui n'en n'est pas une... :-).
Bon, maintenant que vous l'avez bien vue j'explique :
Grâce à notre cher Thalès on peut dire que OE/OB = EE'/BB' car l'objet affiché est parallèle au "vrai".
On cherche EE'.
Après une magouille mathématiques (PAPIER ;-) on obtient EE' = BB' * (OE/OB).
ça commence à devenir intéressant ;-)...
APPLICATION à LA FORMULE : Dans la formule BB' est remplacée par les X de l'objet auxquels on soustrait 1/2 de la largeur de l'écran (si vous ne comprenez pas "reregardez" le dessin) OE est égale à 256 (C'est moi qui décide !!!!!) et OB est égal a OE + les Z de l'objet (logique :)...
A la fin de la formule on ajoute 1/2 de la largeur de l'écran au résultat et oui, on EE' mais ce n'est pas le bon X de l'objet, il faut lui ajouter cette valeur pour obtenir son X.
Pour les Y c'est la même chose sauf que ce n'est plus la largeur de l'écran divisée par deux mais sa hauteur, logique...
Bon voila, j'espère que vous avez compris, sinon envoyez moi un msg.
dsl pour les "fôtes".
-==CrAzY_JoKE... ==-