FIVe3D: core 3D per Actionscript 3.0

FIVe3D (Flash Intercative Vector-based) è un’interessante progetto reazlizzato da Mathieu Badimon. Ne avevo preso visione già qualche tempo fa, quando Actionscript 3.0 ancora non era disponibile. È di questi giorni, invece, un aggiornamento del package alla versione 2.1.

Loading Flash Player...

Questa libreria ha la caratteristica di essere essenziale! Non si propone come competitor di progetto Papervision3D. Il suo punto di forza (o il suo punto debole) è quello di trattare oggetti 3D vettoriali. Il codice è scritto davvero bene e, in pratica, estende gli oggetti Shapee Sprite nativi di Flash con Shape3D e Sprite3D. In questa release non troviamo una camera o altri effetti presenti in librerie più evolute, tuttavia è possibile realizzare rendering e animazione di buon livello con pochissimo dispendio di energie e codice. Inoltre sono riuscito anche ad animare in 3D una bitmap, grazie alla presenza dell’estensione Bitmap3D presente nel package 2.1.
Un’altra catatteristica partciolare di questa libreria è l’ottima resa dei font, grazie ad un sistema embed di vettoralizzazione dei fotn stessi. Anche le funzioni grafiche standard (come moveTo(), lineTo(), etc…) sono tutte rimappate tramite l’oggetto Graphics3D.

Attualemente l’autore ha rilasciato un semplice esempio in quanto la documentazione è ancora assente, a parte un PDF datato e non più disponibile sul sito. Tuttavia, sbirciando i semplici codici sorgente, sono riuscito a fare alcune cosine davvero interessanti.

Il suo funzionamento è davvero semplice: prima di tutto si importa il core:

1
import five3D.display.*;

Poi, come spesso accade in librerie di questo tipo, si inizializza la scena:

1
2
3
4
5
var __scene:Scene3D  = new Scene3D();
__scene.x            = stage.stageWidth / 2;
__scene.y            = stage.stageHeight / 2;
__scene.viewDistance = 800; // 1000 default
addChild( __scene );

Si crea un’oggetto:

1
2
3
4
5
6
7
var __star:Shape3D = new Shape3D();
Drawing.star(__star.graphics3D, 5, 200, 100, 0, 0xD7006C);
__star.x           = -50;
__star.y           = -50;
__star.z           = 0;
__star.flatShaded = false;
__scene.addChild( __star );

Aggiungiamo un semplice movimento:

1
2
3
4
this.addEventListener( Event.ENTER_FRAME, onEnterFrame );
function onEnterFrame ( e: Event ):void {
__star.rotationY++;
}

Provate la stessa animazione inserendo:

1
__star.flatShaded = true;

Prossimamente vedremo ulteriori interessante esempi!

  • Pingback: Mathieu Badimon | FIVe3D | Blog » Blog Archive » FIVe3D: core 3D per Actionscript 3.0()