效果图:
[img]/upload/attachment/125417/f96bec66-ba54-306c-9686-b691695676be.jpg[/img]
[img]/upload/attachment/125417/f96bec66-ba54-306c-9686-b691695676be.jpg[/img]
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.BlurFilter;
//import org.papervision3d.cameras.Camera3D;
import org.papervision3d.cameras.FreeCamera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.layer.ViewportLayer;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.view.layer.util.ViewportLayerSortMode;
/**
* ...
* @author thinlong
*/
public class ViewportLayerExample extends Sprite {
private var viewport:Viewport3D;
private var scene:Scene3D;
private var camera:FreeCamera3D;
private var render:BasicRenderEngine;
private var cubeLayer:ViewportLayer;
private var planeLayer:ViewportLayer;
private var cube:Cube;
private var plane:Plane;
public function ViewportLayerExample() {
init();
}
private function init():void {
viewport = new Viewport3D(600, 500);
scene = new Scene3D();
camera = new FreeCamera3D(1, 100);
render = new BasicRenderEngine();
addChild(viewport);
var mat:ColorMaterial = new ColorMaterial(0xFFFFFF);
plane = new Plane(mat, 600, 500)
plane.pitch(90);
plane.y = -100;
scene.addChild(plane);
cube = new Cube(new MaterialsList( { all:new BitmapFileMaterial("asset/girl.jpg") } ), 200, 200, 200);
scene.addChild(cube);
viewport.containerSprite.sortMode = ViewportLayerSortMode.Z_SORT;
cubeLayer = viewport.getChildLayer(cube);
planeLayer = viewport.getChildLayer(plane);
planeLayer.filters = [new BlurFilter(4, 4)];
addEventListener(Event.ENTER_FRAME, handlerEnterFrame);
}
private function handlerEnterFrame(evt:Event):void {
camera.orbitY(plane,2, 500, 100);
render.renderScene(scene, camera, viewport);
}
}
}