Quantcast
Channel: Not So Stupid » 3D
Viewing all articles
Browse latest Browse all 10

The clone wars

$
0
0

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é


Viewing all articles
Browse latest Browse all 10

Trending Articles