ホーム > Material, Papervision3d > Papervision3d はじめの8歩 Material FlatShadeMaterial

Papervision3d はじめの8歩 Material FlatShadeMaterial

2009 年 6 月 6 日 コメントをどうぞ コメント
Materialっていっぱいあるなー。。たぶん実践で使えるのはかぎられてくるけども、
あたらしくlightっていうのもでてきた!lightは、光源のために使うっぽい?光の色は設定するのかな?
とりあえず、デフォルトで使用。
光が当たっていればマテリアルの色とオブジェクトの影の色の設定すれば反映される。
とりあえず、わかった所からどんどん潜っていこうという方針なのでまとまりがなくてすみませぬ。
1日1APIをhackを目標に頑張ります。
progressionは今読んでる本が終わってからw本格的にやる!

FlatShadeMaterial(light:LightObject3D, lightColor:uint = 0xffffff, ambientColor:uint = 0×000000, specularLevel:uint = 0)
light:ライトオブジェクトの設定
lightColor;ライトとが当たっている場所の色、ライトが当たっていない所は影なので黒くなる。
ambientColor:環境光 ライトが当たってないところの影の色をどうするかの設定。デフォルトは黒
specularLevel:〔反射光{はんしゃこう}が〕、鏡面反射性}の度合

ambientなし:左
ambientあり:右
 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.objects.primitives.Cube;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.view.BasicView;
 
	[SWF(width = "640", height = "480", backgroundColor = "0xFFFFFF", frameRate = "24")]
 
	public class Main extends Sprite 
	{
		private var cube:Cube;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			var light:PointLight3D = new PointLight3D();
			var materialsList:MaterialsList = new MaterialsList( {
				front: new FlatShadeMaterial(light,0xFF0080),
				back: new FlatShadeMaterial(light,0x00FFFF),
				right: new FlatShadeMaterial(light,0x800080),
				left: new FlatShadeMaterial(light,0xFFFFFF),
				top: new FlatShadeMaterial(light,0x808000),
				bottom: new FlatShadeMaterial(light,0xFF8000)
			});
 
			cube = new Cube(materialsList, 200, 200, 200, 1, 1, 1);
			var basicView:BasicView = new BasicView(640, 480);
			basicView.scene.addChild(cube);
			basicView.startRendering();
			addChild(basicView);
			addEventListener(Event.ENTER_FRAME, onFrameHandler);
		}
 
		private function onFrameHandler(e:Event):void 
		{
			cube.rotationX += 5;
			cube.rotationY += 4;
			cube.rotationZ += 3;
		}
 
	}
 
}




Bookmark and Share

関連する投稿

  1. コメントはまだありません。
  1. トラックバックはまだありません。