본문 바로가기

AS3/PV3D

패이퍼비전 3D 기초 - 08

package
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.utils.ByteArray;
	
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.parsers.Collada;
	import org.papervision3d.objects.parsers.DAE;
	import org.papervision3d.view.BasicView;
	
	
	public class chapter08 extends Sprite
	{
		
		[Embed(source="cow.png")] private var CowTexture:Class;
		[Embed(source="cow.dae", mimeType="application/octet-stream")] private var CowDAE:Class;
		private var view:BasicView;
		private var dae:DAE;
		private var cowModel:Collada;
		
		public function chapter08()
		{
			view = new BasicView( 550, 400 );
			this.addChild( view );
			// Shader를 위한 Light 생성
			var light: PointLight3D = new PointLight3D( false );
			light.x = 0;		light.y = 100;		light.z = 0;
			
			/* 포함된 Embed 클래스를 이용하여 Material을 생성한다 */
			var mat:BitmapMaterial = new BitmapMaterial(Bitmap(new CowTexture()).bitmapData);
			var matList:MaterialsList = new MaterialsList();
			matList.addMaterial(mat,"mat0");
			
			/* 포함된 Embed 클래스를 이용하여 DAE 모델을 생성한다 */
			var ba:ByteArray = new CowDAE() as ByteArray;
			var xml:XML = new XML(ba.readUTFBytes(ba.length));
			
			cowModel = new Collada(xml,matList);
			
			/* SWF파일에 모델을 포함했기 때문에 FileLoadEvent.LOAD_COMPLETE이벤트는 발생하지 않는다.
			* 그러므로 아래의 코드는  호출해서는 안된다
			* cowModel.addEventListener(FileLoadEvent.LOAD_COMPLETE, onLoadComplete);
			*/
			
			cowModel.scale = 2;
			
			view.scene.addChild( cowModel );
			view.addEventListener( Event.ENTER_FRAME, onEnter );
		}
		
		private function onEnter(event:Event):void			
		{
			cowModel.rotationY += 2;
			view.singleRender();
		}
		
	}
}

'AS3 > PV3D' 카테고리의 다른 글

패이퍼비전 3D 기초 - 07  (0) 2010.11.19
패이퍼비전 3D 기초 - 06  (0) 2010.11.19
패이퍼비전 3D 기초 - 05  (0) 2010.11.19
패이퍼비전 3D 기초 - 04  (0) 2010.11.19
패이퍼비전 3D 기초 - 03  (0) 2010.11.19