Molto probabilmente, quando uscirà la nuova versione di Adobe Flash, librerie 3D a “basso livello” come FIVe3D faranno una brutta fine! Tuttavia, prima di “cestinarle”, ecco un esempio di quello che è possibile realizzare (con l’ultima release 2.1):
Il codice della demo qui sopra è abbastanza articolato, quindi non lo propongo integralmente online. Inserisco, comunque, alcune parti di codice interessanti.
Aggiornamento: per il sorgente clicca qui
Un contenitore 3D
La prima cosa interessante è la possibilità di creare (come accade anche con Papervision3D e nelle normali operazioni con i MovieClip in Flash) dei contenitori di oggetti 3D. Per realizzare il cubo, infatti, ho creato un oggetto contenitore __cube e a questo ho aggiunto le faccie del cubo!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* ** @name : initCube() */ protected function initCube():void { __cube = new Sprite3D(); __cube.rotationX = 40; __cube.rotationY = -40; __cube.mouseChildren = false; __cube.filters = [ ( new BlurFilter(2, 2, BitmapFilterQuality.HIGH ) ) ]; __scene.addChild(__cube); createFace(0, 0, -150, 0, 0, 0); createFace(150, 0, 0, 0, -90, 0); createFace(0, 0, 150, 0, 180, 0); createFace(-150, 0, 0, 0, 90, 0); createFace(0, -150, 0, -90, 0, 0); createFace(0, 150, 0, 90, 0, 0); } |
__cube viene aggiunto alla scena __scene, e all’interno di __cube aggiungo le “facce”:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* ** @name : createFace() */ protected function createFace(x:Number, y:Number, z:Number, rotationx:Number, rotationy:Number, rotationz:Number):void { var face:Sprite3D = new Sprite3D(); face.graphics3D.beginFill(0xff0000); face.graphics3D.drawRect(-150, -150, 300, 300); face.graphics3D.endFill(); face.x = x; face.y = y; face.z = z; face.rotationX = rotationx; face.rotationY = rotationy; face.rotationZ = rotationz; face.singleSided = true; face.flatShaded = true; __cube.addChild(face); } |
La scena, ovviamente, è quella classica, con l’aggiunta dell’uso del parametro ambientLightIntensity:
1 2 3 4 5 6 7 8 9 10 11 | /* ** @name : initScene() */ protected function initScene():void { __scene = new Scene3D(); __scene.x = stage.stageWidth / 2; __scene.y = stage.stageHeight / 2; __scene.viewDistance = 400; __scene.ambientLightIntensity = 1; addChild(__scene); } |








7
FIVe3D: effetti speciali su un cubo! In attesa di Flash 10…
Molto probabilmente, quando uscirà la nuova versione di Adobe Flash, librerie 3D a “basso livello” come FIVe3D faranno una brutta fine! Tuttavia, prima di “cestinarle”, ecco un esempio di quello che è possibile realizzare (con l’ultima release 2…
Salve a tutti,
Avete visto questa incredibile 3d engine per flash player ?
http://www.sophie3d.com
Great share – thank you!