MENU CARROUSEL FULL 3D CS4

Nix Messages postés 831 Date d'inscription samedi 15 mai 1999 Statut Membre Dernière intervention 18 juillet 2009 - 17 janv. 2009 à 19:30
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009 - 24 sept. 2009 à 12:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48998-menu-carrousel-full-3d-cs4

gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
24 sept. 2009 à 12:46
je viens de downloader le zip, ça décompresse très bien, j'utilise izarc pour dezipper. De toutes façon tu ne peux pas utiliser ce code avec CS3 car il utilise les nouvelles fonction 3D de CS4. Donc il est possible qu'a l'ouverture avec CS3 tu as une incompatibilité de fichier.
camegonffle Messages postés 17 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 24 septembre 2009
24 sept. 2009 à 10:08
lol "ERCVTZ3" tu n'as plus de réseau...

sinon j'ai une erreur inattendue à la décompression du zip. J'ai DL 2 fois mais pas mieux la seconde.
J'utilise Flash CS3 ça viendrait-il de là ?
cs_ercytz3 Messages postés 3 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 29 juin 2009
29 juin 2009 à 13:33
pourquoi les ommes apprennet à be mechant
cette source set genial
peg tu t'es vraiment tus
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
30 avril 2009 à 19:37
Salut,
c'est pas fait avec flex.
Sinon pour l'executer, ben t'as juste à downloader le zip et lancer le fichier Carrousel3D.fla avec flash CS4.
dado32 Messages postés 1 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 30 avril 2009
30 avril 2009 à 11:42
Bonjour,
félécitations pour ce travail j'avoues qu'il est génial :) mais je suis débutant en flex et en developement y a til quelqu'un qui peut m'aider en me dictant les étapes à faire pour exécuter ce code sur mon poste??
j'ai déja eclipse installé
merci d'avance
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
30 janv. 2009 à 18:07
PK pas ?
L'idée semble interessante et c'est vrai qu'il y a suffisament de niveau ici pour pouvoir s'attaquer au projet.

Le but n'etant pas de faire MIEUX...
Mias a mon avis faire plus INTUITIF... Moins rébarbatif.
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
24 janv. 2009 à 16:26
Merci c'est cool,
mais me dit pas que t'es aussi vieux que ça et que tu pourrais être mon père lol!!!

Au fait, j'avais trouvé cette video : http://www.emob.fr/dotclear/flash-10-flash-cs4-2035. c'est un peu long mais il parle du problème. Il parle aussi de la solution avec Array.sortOn("z",...), celle qui est présentée dans la doc d'adobe. J'ai essayé mais dès que tu place un changement de projection, ça fait toujours pareil.
Dans cette vidéo, il dit aussi que ces nouvelles fonctions sont plutôt la pour servir de base a un nouveau moteur. D'ailleurs, il appelle ces fonctions la "2.5D" au lieu de 3D (ça veut tout dire). Donc finalement, l'idée de refaire un moteur avec n'est pas complètement stupide et si ambitieux que ça...
Toujours chaud pour faire un composant standard ? Si vous voulez vraiment monter le niveau, allons y, créons un groupe de travail flashkod et faisons le...
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
24 janv. 2009 à 14:59
Je te pardonne Mon fils !
AH AH AH !

C'est surement du à la différence d'age.
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
22 janv. 2009 à 12:39
J'avais essayé la solution que tu m'as proposé avec getRelativeMatrix3D, j'ai aussi essayé l'autre solution dont tu parlait. Comme tu vois j'ai écouté tes conseils. Je t'ai d'ailleurs posté le résultat et expliqué pourquoi ça ne marche pas avec cette source.

En plus ma source a plus de code car le but (quand j'ai commencé a pisser le code), c'était de pouvoir placer plein d'autre groupes de sprites dans la scène. C'est a dire d'autre modèles autre qu'un cube, j'ai même fait une maison3D et une space shuttle star wars sans modifier une ligne de ce code.
Donc le code est plus conséquent car pus générique car tu peut créer tout a fait autre chose qu'un carrousel avec...

A la base je comptais pas améliorer plus que ça ce code, car j'estime que ces nouvelles fonctions 3d de cs4, c'est pas encore ça et qu'il vaut mieux utiliser papervision (ou autre)

Mais, si t'es ouvert pour que l'on s'attaque a faire ensemble un vrai moteur (vla l'ambition), moi je suis partant...on pourrait trouver d'autres pointure comme toi pour nous aider à développer un truc pareil...

Et excuse moi encore pour mon agressivité à ton égard. Moi aussi j'ai le sang chaud, et moi aussi il m'arrive de pleurer sous la douche après avoir vu certains code posté ici...
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
22 janv. 2009 à 10:07
Et si je te dis que la mienne est meilleure, c'est simplement que:
- Moins de code
- Bug beaucoup moins visible

Rien de plus...
A toi de modifier (si ca te dis) ta source selon mes conseils, aux vues de ce que tu as voulu utiliser. En tous cas MOI je te remercie de m'avoir aidé mieux comprendre le fameux problème de "zSorting".

C'est aussi grace à la tienne que les certains comprendront la difficulté de gérer un groupe de "face" comme un Sprite sachant que réllement le but rechercher étant qu'un groupe de Sprite réagisse comme un seul.
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
22 janv. 2009 à 01:30
Enfin, je dis que ta source n'est pas meilleur que la mienne sinon pire !

Pour ceux qui veulent s'en convaincre voici un printscreen du résultat de la source de top30 avec le bug :

http://top30bug.skyrock.com/2262025467-Preuve-que-la-source-de-top30-presente-un-bug.html
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
21 janv. 2009 à 20:54
Salut à tous...

Il est vrai que Peg est TOUJOURS exigeant. Mais c'est sa signature. Faut pousser vers le haut. Ca fait plus de 8 ans que je fréquente FlashKod et le niveau ne monte guère.
C'est aussi vrai que parfois son ton "sec" peut laisser perplexe. Mais je lui pardonnerai toujours car c'est quelqu'un qui comme moi aime la qualité...
Et surement que parfois il reste des heures pleurant sous la douche à penser aux dernières sources qu'il a vu ici. Moi je préfère en rire.
De plus, parfois mon ton est encore plus incisif que le sien. Cherchez, cherchez on m'a même censuré !

Je ne parle pas de ta source Gremlins car ma note et mon opnion je te les ai donnés plus haut.

Ceci dit en lisant tes commentaires j'ai suppose que ton niveau de 3D est mon niveau de AS, mais aussi viseversa !
Je m'explique si tu dis:
"..getRelativeMatrix3D ne resout absolument pas le problème..."
Ben tu te trompes (en partie) et je t'ai fait une source pour te le démontrer.
Et oui je suis comme ca:

http://www.flashkod.com/codes/GET_RELATIVE_MATRIX3D-CONCEPT_49040.aspx

Tu verras que cela résolut bien ton problème de "zSorting".
Pas besoin de buffer...

Bref ma source est meilleure que la tienne !
Mais tu t'en fout ! Je t'ai résolu le problème. :)

A plus et profitez...
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
21 janv. 2009 à 17:03
Très intéressant.
Très facile à adapter, donc c'est cool pour ceux qui n'ont pas envie de coder.
C'est aussi cool pour ceux qui veulent coder, comme ça ça leur laisse un peu de taf.
Je mets 7 pour la source qui n'est pas aboutie, puisqu'il y a toujours le problème des faces sur les extrémités.
Je suis en train d'essayer d'ajouter l'ombrage, en imaginant un calque représentant l'ombre, qui ne "tourne" pas avec l'image surlaquelle il est plaquée, mais qui se déforme seulement. Ca restera cohérent avec ta source puisque facilement modifiable.
Bref, comme je ne sais pas si je vais y arriver, peut être que quelqu'un reprendra l'idée et finira avant moi...

PS : par rapport aux commentaires de Peg, c'est vrai que le "intéressante pour un essai" était une remarque inutile et volontairement condescendante, mais pour le reste assez constructive. En tout cas ces remarques et tes réponses étaient intéressantes, y avait pas besoin de se braquer... (j'espère en tout cas que tu te braqueras pas pour ma remarque!!)

Encore bravo et bon courage!!
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
21 janv. 2009 à 12:50
Re,
getRelativeMatrix3D ne resout absolument pas le problème. Car l'erreur n'est pas dans le calcul du Z. Utiliser getRelativeMatrix3D donne les mêmes valeurs de Z que celles deja calculées.
J'ai egalement essayé de faire comme top30 la suggeré, a la difference que au lieu de faire des sprite3D, j'ai simplement etendu la classe Model3D à Sprite ce qui revient au même et qui est plus simple. Chaque instances recalculant son z puis, la classe 3D repositionnant le z de chaque modèles. Avec cette methode il n'y a pas non plus de differences avec les valeurs de z deja calculées.
Le pb vient du fait que z est calculé à partir de la normale de la surface. Donc lorsque deux surfaces ont la même normale en z, il se produit une erreur. Un simple Z-sorting ne suffit pas. Seul un Z-buffer peut regler le pb.
Pour un cube il y a quand meme une solution de remplacement : refaire le modele du cube non pas avec 6 polygones mais avec 12. Du coup il n'y a plus de conflit de Z.
Enfin, on va pas refaire un moteur, c'est pas le but. Je reste convaicu que pour l'instant papervision reste la meilleur solution avant que quelqu'un sorte un moteur 3D avec ces nouvelles fonction de CS4.
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
20 janv. 2009 à 23:09
Merci c'est cool un peu d'encouragements.

Je suis justement en train de tester la méthode getRelativeMatrix3D.
J'essaye de modifier le code dans ce sens, je viens de voir d'autres sources qui l'utilisent.
Je crois avoir trouvé une modif simple.
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
20 janv. 2009 à 22:49
La note !
C'est chiant ce systeme d'association "note"+"commentaire" !!!

=(
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
20 janv. 2009 à 22:48
J'ai trouvé...
Il faut que ta classe "scene3D" trie sur le Z. Chaque instance modèle fasse de même en interne.
En d'autre sorte que les instances Sprites utilisées par la "scène" soit des "Sprite3D" pouvant redessiné leur contenu selon la scene.

Bref moi je me suis compris...
Bon courage

9 par rapport au niveau débutant
7 par rapport au niveau expert

Corriger le z sorting: INEVITABLE quand on s'attaque à la 3D !
8/10...
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
20 janv. 2009 à 18:42
http://livedocs.adobe.com/flex/3/langref/flash/geom/Transform.html#getRelativeMatrix3D()

Peut aussi resoudre les problèmes basique de "Z" sorting...
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
19 janv. 2009 à 23:23
Suite a notre discussion privée et houleuse avec pegase31, je me dois de répondre à ses attaques.
Pegase31,
Ton comportement agressif est bien connu depuis longtemps sur ce site. Tu pense systématiquement que parce tu n'aurait pas fait comme ça, c'est forcement pas bien.

Pour cette source tu a cru que je ne connaissais pas les techniques utilisées habituellement en 3D, c'est pour ça que tu t'est permis de juger à la va vite. Ce qui est très rabaissant et hautain.

Tu pense qu'un code doit-être toujours le plus optimisé possible, c'est ton cheval de bataille. Tu ne sait pas qu'il existent des gens qui, soit pour des raisons de temps, soit pour des raisons de compétences ou de cout, ne regarderons pas une seule lignes de codes. Pour ceux là, ils ont juste à modifier les clips du carrousel avec les leurs pour le personnaliser. Aller, pour un débutant c'est fait en 5 min chrono et même si on connait pas l'AS3. Voila pourquoi j'utilise encore la bibliothèque.

Ceux qui en revanche sont un peu moins pressé, s'attarderont à comprendre le fonctionnement d'un moteur simpliste (très simpliste), et ils verront les problèmes que cela posent : les erreurs des algos d'affichage, les héritage des classes, le poids du traitement... Ils auront une approche et comprendront les enjeux. En plus çà les fera réviser leur maths pour les points de fuites...

Ceux qui sont experts, savent très bien que cette source n'est valable que pour des modèles avec peu de faces comme un carroussel3D par exemple et avec des modèles précis comme un cube (et encore). Ils verront tout de suite que ce code ne gère ni les faces cachées, ni un lancer de rayon, ni même la physique.

Cependant, avec mon PC et ce code, ça rames à partir de 300 faces soit 50 cubes. C'est une solution rapide, si je dois faire rapide. S'ils veulent faire des projets plus conséquents, les experts se rabattrons surement sur papervision. Enfin il verront l'évolution, parce qu'ils y a peu faire tourner 300 movieclips sur une scene etait impensable.

Pour les plus malins qui voudrait faire avec des vertex, ils verront d'eux-même qu'une simple modif rapide de la source et c'est fait. Vous trouverez un exemple bien fait sur jeanphiblog qui utilise les vertex et la classe graphics, mais qui ne fait pas non plus de tris de faces.

Finalement, pegase31, je n'ai pas besoin de ton aide pour progresser. Si je veux programmer un backface culling, ou un z-order ou que sais-je, je le ferais, c'est sur, sans tes conseils. Et comme "rien ne t'oblige à m'aider", s'il te plait ne le fait pas, laisse moi tranquille.

Pegase31, merci de ne pas répondre et de me laisser tranquille à l'avenir.
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 janv. 2009 à 20:27
heu .. à toi de voir si tu veux réellement progresser ou pas en flash ...
As-tu au moins regardé les méthodes dont je t'ai parlé ? As-tu cherché à améliorer ton code avec ces méthodes ?

Après moi c'est pour toi que je le dis, rien ne m'oblige à t'aider ...

Peg'
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
19 janv. 2009 à 20:12
Salut peg,
alors, j'ai regardé vite fais et j'ai pas tout pigé ? comme d'hab...
Pourtant c'est simple et ordonné.

Essaye de te renseigner un peu sur les techniques de 3D avant de dire n'importe quoi et de flamber. Tu comprendra le compromis qui a été fait dans cette source et comment l'éprouver.

Et à l'avenir, évite ce ton condescendant ;)
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
17 janv. 2009 à 20:16
Effectivement sympa, sauf que l'API que tu utilises (les displayObjects) ne sont pas indiqués pour faire des formes 3D comme celà.
En est pour preuve l'erreur de tri des faces sur les objets sur les côtés ...

La meilleurs solution reste la technique du DrawTriangles de la classe Graphics, qui permettrais réellement de faire des faces 3D, avec tri direct de faces.

Ensuite, j'ai regardé un peu ton code, et j'avoue ne pas saisir toutes les modifications de perspectives que tu fais, tu changes le point de fuite, alors qu'un simple déplacement de Sprite permet de faire celà facilement.
Pourquoi avoir créé des clips dans la bibliothèque ? La liaisons de bitmaps est tout aussi fonctionnelle et si c'est pour faire une interaction dessus plus tard, l'inclusion dans un sprite généré en code fonctionne très bien.

Au final, je trouve cette source intéressante pour un essai, mais bien trop compliqué pour le résultat qu'elle donne ...
Essaye de simplifier tout ça, car la même chose est faisable avec beaucoup moins de code et de "bazard" partout ;)

Peg'
Nix Messages postés 831 Date d'inscription samedi 15 mai 1999 Statut Membre Dernière intervention 18 juillet 2009
17 janv. 2009 à 19:30
Très sympa.
Fluide et joli
Rejoignez-nous