The clone wars

L’accĂ©lĂ©ration GPU que propose l’API molehill, c’est la promesse d’une gestion faramineuse de polygones,
des dĂ©mos impressionnantes affichant des centaines d’objet ou personnages ont dĂ©jĂ  Ă©tĂ© montrĂ©, mais n’avez-vous pas remarquĂ© qu’elles ne prĂ©sentaient gĂ©nĂ©ralement qu’un seul et mĂŞme objet dupliquĂ©?
S’il est possible d’obtenir ce resultat c’est grâce au clonage d’objet, ou plus prĂ©cisĂ©ment de buffer, car le clonage affecte quasiment en rien la mĂ©moire, certes le nombre de polygones que doit dessiner le GPU augmentera mais en gĂ©nĂ©ral il peut en dessiner des millions sans problème.

donc clonez, en utilisant cette technique vous économiserez la mémoire car il y aura toujours le même buffer utilisé pour chaque clone affiché à l’écran.
le gain de performance sera impressionnant !

Dans Away4, un objet 3D est composĂ© de vertices, uvs et d’indices de face.
Lors du clonage ces données sont partagées.
L’objet clonĂ© obtient une nouvelle matrice de transformation qui permettra de positionner toutes ces donnĂ©es Ă  l’Ă©cran de façon autonome.

Dans away4 on procède ainsi:

var sheep:Sheep=new Sheep(new ColorMaterial(0xFFFFFF));
view.scene.addChild(sheep);

var dolly:Mesh=sheep.clone();
view.scene.addChild(dolly);

Ce qui est génial c’est que même les objets 3D animés peuvent être clonés tout en gardant une animation indépendante !
En voilĂ  la preuve avec ma collection de canards ( vivants )

Les sources de cette dĂ©mo sont accessible via le svn d’Away3D 4 « AS3SkinExporterStressTest.as » :)
Le modèle 3D ainsi que ses animations on été exportés depuis 3ds max directement en classes AS3 compatible Away4 via l’exporter AS3SkinExporter.

George Cloné

    • Damien
    • 9 mars 2011 10:01

    Vraiment interressant! Tu parles d’un AS3SkinExporter, pourrais tu en dire plus s’il te plait?
    Je cherche un moyen d’exporter des objets avec animations et skins depuis 3DS max.
    Merci. :)

    • Seraf_NSS
    • 9 mars 2011 6:22

    Salut

    AS3SkinExporter est un plugin 3ds max que j’ai dĂ©veloppĂ© il y a peu de temps,
    capable d’exporter un Mesh utilisant le modifier Skin de 3ds max, compatible biped, bones ( bones+biped aussi), helper, tout les objects que gère le modificateur Skin.
    Bien sur il exporte aussi les animations des objects lié au Skin.

    il sera prochainement disponible avec une nouvelle version d’AS3GeomExporter

    • Damien
    • 9 mars 2011 6:26

    Super! Ben y’a plus qu’Ă  attendre du coup… :) Merci

    • Avangel
    • 13 juin 2011 1:04

    Salut,

    Je suis un total noob du dĂ©veloppement 3D (et de la 3D en gĂ©nĂ©ral), et j’aimerais savoir comment tu t’y prends pour crĂ©er cet effet « cartoon » sur tes canards ? Est-ce que ça se fait au niveau de la modĂ©lisation dans 3DSMax ou bien ce sont les textures/shaders, etc…

    J’ai trouvĂ© dans les tutos Away3D l’utilisation de la propriĂ©tĂ© « outline » avec un WireframeMaterial et un rendu en couleur homogène, mais il semblerait que cette propriĂ©tĂ© ait disparu de l’API de la version 4…

    Si tu peux me mettre juste sur la piste d’oĂą je dois regarder, ça serait super cool :) J’essaie d’apprendre mais il y a beaucoup de concepts Ă  apprĂ©hender d’un coup ^^

    Merci d’avance !

    Avangel.

    • Seraf_NSS
    • 13 juin 2011 9:24

    Salut
    pour la couleur ceilShader c’est le shader ceil d’away3D4
    et pour le contour noir c’est mon exporter qui permet de l’ajouter lors de l’export

    • lu
    • 4 juillet 2011 11:51

    Bonjour,
    je viens de regarder le code dans away3D depuis le svn, mais il semble que le AS3SkinExporterStressTest n’utilise pas la technique du clone. Est ce implicite ?

    code de l’AS3SkinExporterStressTest :
    var duck:DuckPuppet;
    for(var i:uint=0;i<9;i++){
    for(var j:uint=0;j<9;j++){
    duck=new DuckPuppet();
    duck.mesh.x=600*i-(600*5);
    duck.mesh.z=600*j-(600*5);
    duck.playAnim(null);
    World.view.scene.addChild(duck.mesh);
    }
    }

    • Seraf_NSS
    • 4 juillet 2011 1:38

    tout Ă  fait,
    cela dit la demo ne devrait plus fonctionner avec les dernières versions d’away3D
    je n’ai pas eu le temps de mettre Ă  jour mes class

  1. Je me suis prĂ©cipitĂ© un peu sur mon autre post, n’en tiens pas compte ^^
    La question est : as tu une idĂ©e de quand tu vas pouvoir mettre Ă  jour ces 2 « super » class ? :)

    • Seraf_NSS
    • 4 juillet 2011 8:21

    en septembre je pense

  1. 27 février 2011