ログイン | アカウントの作成
CONTACT | HOME | BBS | Wiki | Blog | Tools |


ブログトップページ

自分のブログページ

最近更新されたブログ
押し出しテキスト (d5)
Cube回転 (d5)
パッケージ配布サーバ (d5)
RTMP Client ビデオをアップロード (d5)
WOWEngine インストール (d5)
ビデオStreamの画像キャプチャ (d5)
2DオブジェクトをMatrix3Dで操作する (d5)
メモリを割り当てる (d5)
Eclipse 環境構築 (d5)
アプリケーション入門編 ① (d5)
インストール (d5)
DisplayObject3D の削除を考える (d5)
入門編⑨ Cube マテリアル MaterialList (d5)
メニュー画面の作成② (d5)
Painter初挑戦~ (d5)
川端康成の誕生日 2008/06/14 (d5)
欧州選手権2008 2008/06/07 (d5)
スペインの画家「Diego Velazquez」 2008/06/06 (d5)
世界初 熱気球 2008/06/04 (d5)
歴史上初のエベレスト登頂の日 2008/05/29 (d5)
レーザー光線の発明 2008/05/16 (d5)
メニュー画面の作成 (d5)
新しい家族 (d5)
かぎ編みハマりました。 (yucca)
産婦人科グッズと愛するポトスに・・・ (yucca)
カーレースゲームを作ってみる⑪ 微修正 (d5)
カーレースゲームを作ってみる⑩ いろいろ修正 (d5)
カーレースゲームを作ってみる⑨ ゴールを作成 (d5)
カーレースゲームを作ってみる⑧ カメラの切り替え (d5)
カーレースゲームを作ってみる④ マップの作成 (d5)
カーレースゲームを作ってみる⑦ テクスチャーリピート (d5)
カーレースゲームを作ってみる⑥ collision (壁) の作成 (d5)
カーレースゲームを作ってみる⑤ グリップの調整 (d5)
カーレースゲームを作ってみる④ マップの作成 ② (d5)
カーレースゲームを作ってみる③ (d5)
Supreme Commander リアルタイムストラテジー (d5)
カーレースゲームを作ってみる② (d5)
カーレースゲームを作ってみる① (d5)
入門編⑧ Collada + Phong Shader + テクスチャー (d5)
入門編⑦ テクスチャ付き Phong Shader (d5)
テキストエディタ ショートカット 語句ジャンプ (d5)
入門編⑤ ライトを作成してPhong Shader を使用する (d5)
入門編⑥ Phong Shader の種類 (d5)
入門編④ テクスチャー (d5)
入門編③ マテリアルの設定 (d5)
入門編② 板ポリを動かす (d5)
入門編① 3Dシーンの作成 (d5)
ダウンロードとインストール(クラスパスの設定) (d5)
インストールと準備 (d5)
インストーラーの入手とインストール (d5)
インストール後の確認 (d5)
トップページ / d5 / Papervision3D / 入門編⑤ ライトを作成してPhong Shader を使用する

2008年 04月 19日

入門編⑤ ライトを作成してPhong Shader を使用する

立方体を配置してライトををあてて陰影を付けます。

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
  



「Papervision3D」のアーカイブ




CgInstitute のホーム   -    コンタクト   -    CgInstitute について   -    アカウントの作成