ログイン | アカウントの作成
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 / 入門編⑨ Cube マテリアル MaterialList

2008年 08月 23日

入門編⑨ Cube マテリアル MaterialList

今更ですが Cube の マテリアルについてです。
ある面だけのマテルアルを変更したい。
という時はMaterialList を使用して 面毎に設定します。

Cubeの materialsList:String は
front, back, right, left, top, bottom & all.
になります。



指定しない部分は何もレンダリングされません。


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 org.papervision3d.objects.DisplayObject3D;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.text.TextField;
	import flash.events.MouseEvent;
	import flash.display.DisplayObject;
	import flash.text.TextFormat;
	import flash.text.TextFormatAlign;

	public class Pv3D_TEST extends Sprite
	{
		
		public var viewport	:Viewport3D;
		public var scene		:Scene3D;
		public var camera		:Camera3D;
		public var renderer	:BasicRenderEngine;
		public var obj3d		:DisplayObject3D;
		
		
		/**----------------------------------------------------------------------
		 * コンストラクタ
		-----------------------------------------------------------------------*/
		public function Pv3D_TEST() {
			
			
			var text:TextField = new TextField();
			text.width = this.stage.stageWidth;
			text.y = this.stage.stageHeight/2  - text.height/2;
			text.selectable = false;
			text.defaultTextFormat = new TextFormat(null,16,null,null,null,null,null,null,TextFormatAlign.CENTER);
			text.defaultTextFormat.align = TextFormatAlign.CENTER;
			text.text = "クリックしてください";
			this.addChild(text);
			text.addEventListener(MouseEvent.CLICK , this.init);
			
		}
		
		/**----------------------------------------------------------------------
		 * init
		 * 初期化
		-----------------------------------------------------------------------*/
		public function init(evn:MouseEvent):void {
			
			this.removeChild(DisplayObject(evn.currentTarget))
			
			
			//このムービーのスケールモードを設定
			this.stage.scaleMode = StageScaleMode.NO_SCALE;
			this.stage.align = StageAlign.TOP_LEFT;
			
			
			//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();
			
			
			
			//Cubeを作成
			this.obj3d = new Cube(new MaterialsList(
				{
					front:new ColorMaterial(0xFF0000)
					,back:new ColorMaterial(0x00FF00)
					,right:new ColorMaterial(0x0000FF)
					,left:new ColorMaterial(0xFF00FF)
					,top:new ColorMaterial(0xF0000F)
					,bottom:new ColorMaterial(0x0F0F0F)
				}
			));
			this.scene.addChild(this.obj3d );
			
			
			
			// カメラの作成
			this.camera = new Camera3D();
			this.camera.zoom = 3;
			
			
			
		}
		
		/**----------------------------------------------------------------------
		 * loop_Proc
		 * 毎フレーム呼び出される 関数
		-----------------------------------------------------------------------*/
		public function loop_Proc(event:Event):void 
		{
			this.obj3d.rotationX ++;
			this.obj3d.rotationY ++;
			
			//レンダリング
			this.renderer.renderScene(scene, camera, viewport);
		}
		

	}
}

投稿者: d5      22 : 08
更新日:2008-08-23 22:24:16
  



「Papervision3D」のアーカイブ




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