PV3D入门之ViewportLayer

效果图:
[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);
}
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值