Код AS3:
package test {
import away3d.cameras.*;
import away3d.containers.*;
import away3d.entities.*;
import away3d.lights.*;
import away3d.materials.*;
import away3d.materials.lightpickers.*;
import away3d.materials.methods.*;
import away3d.primitives.*;
import away3d.textures.*;
import flash.display.*;
import flash.events.*;
/**
* HelloAlternativa3DtoAway3d "Hello world!" application.
* Создание простейшего трёхмерного приложения.
*/
public class HelloAlternativa3DtoAway3d extends Sprite {
private var container:ObjectContainer3D;
private var box:Mesh;
private var plane:Mesh;
private var view:View3D;
private var controller:SimpleObjectController;
public function HelloAlternativa3DtoAway3d() {
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
init();
}
private function init():void {
view = new View3D();
view.camera.lens.far = 10000;
view.camera.moveTo( -170, 1361, -1221);
view.camera.rotateTo(45, 2, 0);
addChild(view);
container = new ObjectContainer3D();
view.scene.addChild(container);
var sunLight:DirectionalLight = new DirectionalLight(-1, -0.4, 1);
sunLight.color = 0xFFFFFF;
sunLight.castsShadows = true;
sunLight.ambient = 1;
sunLight.diffuse = 1;
sunLight.specular = 1;
container.addChild(sunLight);
var lightPicker:StaticLightPicker = new StaticLightPicker([sunLight]);
var filteredShadowMapMethod:SoftShadowMapMethod = new SoftShadowMapMethod(sunLight);
filteredShadowMapMethod.epsilon = 0.005;
var material:TextureMaterial = new TextureMaterial(new BitmapTexture(new BitmapData(2, 2, false, 0xFF0000)), true, true);
material.lightPicker = lightPicker;
material.shadowMethod = filteredShadowMapMethod;
material.ambient = 0.5;
container.addChild(box = new Mesh(new CubeGeometry(250, 250, 250, 1, 1, 1), material));
material = new TextureMaterial(new BitmapTexture(new BitmapData(2, 2, false, 0x00FF00)), true, true);
material.lightPicker = lightPicker;
material.shadowMethod = filteredShadowMapMethod;
material.ambient = 0.5;
container.addChild(plane = new Mesh(new PlaneGeometry(3000, 3000), material)).y = -125;
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(e:Event):void {
box.rotationY -= 1; //в градусах
view.render();
}
}
}