Programmation 2000

Je suis pas un vrai programmeur , à moins de considerer ActionScript comme un vrai langage …

Les choses etant dites , precaution qui m’evitera de susciter rires et moqueries, je passe au sujet …

Je delasse la programmation dite classique, et la facilité du Flash pour programmer quelques VRAIS effets graphiques …

Je me lance directement dans un effet de tunnel , comme on pouvait en voir dans les bonnes vieilles demos sur ST ou Amiga à la grande epoque.

Concretement c pas extremement compliqué , mais j’ai un leger souci de “perception”… Le tunnel serait creer grace à une serie de cercle dont le diametre grandirait à intervalles reguliers ( effet d’approchement ) et donc tout cela se repeterait …

Le GROS souci est que ça rend trop moche … on a pas l’impression d’un rapprochement “3D” mais plutot celle d’un agrandissement linéaire…( et c’est le cas au niveau du code )

Ayant rarement assisté à des cours de maths et de dessin technique en 3D, je me suis demandé s’il n’y a pas un coefficient d’agrandissement pour le diametre des cercles …

merci à ceux qui ont reussi à comprendre et qui arriveront à me repondre

Edit : Correction
Ce message a été édité par Monsieur_Max le 28/10/2003

pour respectez la perspective, si un point ton “cercle” est a une distance z de ton ecran (enfin ta camera quoi) et x et y, ses coordonnes ecran x’ et z’ seront du type x/z et y/z… plus ou moins 10% de mise a l’echele et de poils de couille de ratio

et voilaaaa…

c0unt0, lockeur de frame depuis 1987.

si je me rapelles bien, la formule de perspective c’est xecran = x/zalpha et yecran = y/zalpha (alpha c’est le fov, on met généralement pi/2). donc on suppose que tu as un éloignement constant dans le z (1,2,3,4,5,6,7,8, etc…) pour tes cercles de taille 4

donc: on aura:

z=1: 4/1Pi/2
z=2: 4/2
Pi/2
z=3: 4/3Pi/2
z=4: 4/4
Pi/2
z=5: 4/5*Pi/2

etc…

edit: grillé par count0… en tout cas ca fait plaisir de savoir que je connais encore mes formules
Ce message a été édité par [PERE]Cil le 27/10/2003

merci je vous aime , je mettrai ça à profit dès demain !

je sais où m’adresser maintenant pour ce genre de question

Pour pousser la théorie encore plus loin on peut dire qu’un point 3D défini par ses coordonnées (X, Y, Z), pour passer en 2D, doit passer par la transformation de ses coordonnées par une matrice 4x4 (concatenation de la matrice de transformation et de la matrice de projection).

Donc pour ça, on transforme le point 3D en point 4D en coordonnées homogénes, cad (X, Y, Z, 1). Puis on multiplie par la matrice 4x4 (facile, dot product de chaque ligne de la matrice par le vecteur 4D), ce qui nous donne un vecteur (X’, Y’, Z’, W’). (le W’ étant la version transformée du 1 du vecteur d’origine, vous l’aurez compris).

Ensuite, il faut homogénéiser le tout par :

X2D = X’ / W’
Y2D = Y’ / W’
ZFinal = Z’ / W’
WFinal = 1 / W’

Et on obtient donc le résultat final demandé ! C’est formidable !

(tout ça pour dire : X2D = X / Z quoi en fait hein, comme le dit si bien c0unt0, pareil pour Y )

Ok ! je vais essayer de digerer ça au taf aujourd’hui, ça necessitera un rédemarrage de certaine fonctions cerebrales, apres echauffement pour eviter un claquage cortexoïdal…

Sinon , toujours dans le meme style “Moteur 3D” , vous auriez peut etre des liens vers quelques sites traitant tres tres simplement du sujet ? ( Du genre : Le Cube dans l’Espace )

Un rappel :

Fan de Rez , je me lance dans un projet Flash y ressemblant fortement ( j’ai deja evoqué ça dans un vieux thread ).

Au départ , je pensais uniquement faire dans la 3D precalculé et mise en place par l’actionscript ( avec des subterfuges pour ne pas surcharger l’anim et le poids de l’ensemble )

Puis je me suis dit que quelques petits algo temps réels pourrait rendre le tout un peu plus “agreable” et techniquement esthetique. Swift 3d est un outil formidable , mais limité, donc pour pallier à certaines faiblesses , le temps réel me semble pas trop mal

Merci d’avance !

EDIT: Success !

J’avoue , j’ai essayé de bien comprendre vos propos… comprendre dans le sens “Assimiler” c’est à dire lire, dire “ah ouiiii!”, ouvrir flash et ecrire 30 lignes qui marchent du premier coup…

A vrai dire ça ne s’est pas passé comme ça…

premier post , celui de c0unt0, m’a fait reflechir , je me suis demandé comment j’allais l’appliquer à mon anim, en sachant qu’en réalité je ne modifie pas vraiment le diametre du cercle mais plutot l’echelle du cercle… mon cerveau n’a pas reussi à trouver la solution… ( le fautif est le tas de neurones logé dans mon crâne , pas toi c0unt0 ! )

Second post, celui de [PERE]Cil, a été beaucoup plus parlant , surtout grâce à l’exemple à vrai dire !

Troisieme post, celui de tuo, fusion du cerveau , liquefaction neuronale, j’ai jamais autant regretté d’avoir joué à “Babal” sur ma HP plutot que de suivre le cours de math !

Au final , devant le manque evident de connexions entre mes neurones restants, j’ai opté l’option du n00b, copier-coller !

un morceau du code ( tres cracra ) :

[quote]n=100;

attachMovie( “CERCLEOCC” , “Cercle”,1); // affichage du cercle initial
Cercle._xscale = 0;  // initialisation du cercle
Cercle._yscale = 0;
Cercle._x = 150 ;
Cercle._y = 150 ;

var ZoomCercle;
ZoomCercle = setInterval( function(){ n–
 Cercle._xscale = (100/n)(3.14/2);
 Cercle._yscale = (100/n)
(3.14/2); } , 5);

var Zoomtest;
ZoomTest = setInterval ( function () {
 if ( n <0) {
Cercle._xscale=0; Cercle._yscale = 0;
clearInterval(ZoomCercle); clearInterval(ZoomTest);}},5)[/quote]L’actionScript ressemble pas mal au JavaScript, vous l’aurez remarqué !

concernant cette portion de code , c’est parfaitement fonctionnel pour un seul cercle, reste maintenant à les enchainer , à la bonne fréquence…

Dans un premier temps, ça sera un tunnel tout droit, et une fois que ca ressemblera à un vrai truc chiadé, il y aura des virages dans tous les sens… je vous colle un lien du bidule des que ca ressemble à quelque chose !
Ce message a été édité par Monsieur_Max le 28/10/2003

Site simple, a pas sous la main. Cependant, si tu cherches un bon
bouquin en francais qui aborde les choses de manière simple,mais
complète, je ne saurais que trop que conseilller celui-ci
Assez bien foutu, il expose tout de la 2D a la 3D, sur les principales techniques de rendu (projection, ZBuffer, lancer de rayons …).

mmmhhh merci pour le bouquin , c’est meme beaucoup mieux que n’importe quel site … j’irai voir à la Fnac des que je peux …

Note : J’ai mis le lien vers la FNAC, mais le bouquin est aussi dispo chez Amazon.

En passant sur le site de l’auteur, tu peux trouver les TPs
correspondant au bouquin.
Oui oui, je les ai tous faits… .