2008年 04月 19日
立方体を配置してライトををあてて陰影を付けます。
pv3d_test5.as
package {
import flash.display.Sprite;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.objects.primitives.Plane;
import flash.events.Event;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.core.utils.Mouse3D;
import flash.display.BitmapData;
import flash.utils.getDefinitionByName;
import org.papervision3d.core.proto.MaterialObject3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.shadematerials.PhongMaterial;
import org.papervision3d.materials.shadematerials.GouraudMaterial;
import org.papervision3d.materials.shadematerials.CellMaterial;
import org.papervision3d.materials.shadematerials.EnvMapMaterial;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
public class pv3d_test5 extends Sprite
{
public var viewport :Viewport3D;
public var scene :Scene3D;
public var camera :Camera3D;
public var renderer :BasicRenderEngine;
public var cube :Cube;
/**----------------------------------------------------------------------
* コンストラクタ
-----------------------------------------------------------------------*/
public function pv3d_test5() {
//初期化
init();
}
/**----------------------------------------------------------------------
* init
* 初期化
-----------------------------------------------------------------------*/
public function init():void {
//このムービーのスケールモードを設定
this.stage.scaleMode = "noScale"
//3Dの初期設定
this.init3D();
//毎フレーム呼び出されるイベントを追加
this.addEventListener( Event.ENTER_FRAME, this.loop_Proc );
}
/**----------------------------------------------------------------------
* init3D
* 3Dの初期設定
-----------------------------------------------------------------------*/
public function init3D():void {
// ビューポートの作成
this.viewport = new Viewport3D(0, 0, true, true);
this.addChild( viewport );
//レンダラーの設定
this.renderer = new BasicRenderEngine();
//シーン作成
this.scene = new Scene3D();
//ライトの作成
var light:PointLight3D = new PointLight3D();
light.x = 100;
light.y = 300;
light.z = -100;
//ライトを追加
this.scene.addChild(light);
//phong shaderの作成
var phong_mat:PhongMaterial = new PhongMaterial(light ,0xFFFFFF, 0x808080,1);
//立方体用マテリアルリスト
var mat_list:MaterialsList = new MaterialsList({all:phong_mat});
//立方体を作成
this.cube = new Cube(mat_list);
//平面シーンに追加
this.scene.addChild(this.cube);
// カメラの作成
this.camera = new Camera3D();
this.camera.zoom = 2;
}
/**----------------------------------------------------------------------
* loop_Proc
* 毎フレーム呼び出される 関数
-----------------------------------------------------------------------*/
public function loop_Proc(event:Event):void
{
//板ポリ
this.cube.rotationX += 2.0;
this.cube.rotationY ++;
//レンダリング
this.renderer.renderScene(scene, camera, viewport);
}
}
}
こんな感じっすー
投稿者: d5 22 : 04
更新日:2008-04-19 23:55:31
|
|
|
| |