Sandy引擎学习笔记:纹理贴图

问题:怎样才能为我的创建的物体创建纹理贴图?

  1. Sandy引擎学习笔记:纹理贴图_第1张图片p

  1. package 
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.display.Bitmap;
  5.     import flash.display.BitmapData;
  6.     import flash.events.*;
  7.     import sandy.core.Scene3D;
  8.     import sandy.core.scenegraph.*;
  9.     import sandy.core.data.*;
  10.     import sandy.materials.*;
  11.     import sandy.materials.attributes.*;
  12.     import sandy.primitive.*;
  13.     public class MyTexture extends Sprite
  14.     {
  15.         private var scenne:Scene3D;
  16.         private var camera:Camera3D;
  17.         private var img:BitmapData=new BrickWall(0,0);
  18.         private var bitmap:Bitmap=new Bitmap(img);
  19.         private var plane:Plane3D;
  20.         public function MyTexture()
  21.         {
  22.             camera=new Camera3D(400,300);
  23.             camera.z=-400;
  24.             var root:Group=createScene();
  25.             scenne=new Scene3D("scene1",this,camera,root);
  26.             addEventListener(Event.ENTER_FRAME,Run);
  27.         }
  28.         private function createScene():Group
  29.         {
  30.             var g:Group=new Group();
  31.             var material:BitmapMaterial=new BitmapMaterial(bitmap.bitmapData);
  32.             var ape:Appearance=new Appearance(material); //添加材质  
  33.             plane= new Plane3D( "thePlane",300, 300 );
  34.             plane.appearance=ape;//表面贴图  
  35.             g.addChild(plane);
  36.             return g;
  37.         }
  38.         private function Run(event:Event):void
  39.         {
  40.             scenne.render();
  41.             //plane.rotateX+=5;   
  42.             plane.rotateY+=1; 
  43.             //plane.roll+=5;  
  44.         }
  45.     }
  46. }

 这里所做的事情并不多,制作思路很简单,首先导入贴图所需要的类库

  1.    import sandy.core.Scene3D;
  2.     import sandy.core.scenegraph.*;
  3.     import sandy.core.data.*;
  4.     import sandy.materials.*;
  5.     import sandy.materials.attributes.*;
  6.     import sandy.primitive.*;
  7.  其中   import sandy.materials.*;
  8.     import sandy.materials.attributes.*;
  9. 是负责材质方面工作。我们要关注这个包里面的方法方便我们调用。

  制作思路:

 老的思路,创建一个摄影机,创建一个场景,创建一个平面,这个平面是为我们贴图所用的。

  1.   private var img:BitmapData=new BrickWall(0,0);
  2.         private var bitmap:Bitmap=new Bitmap(img);

 

看这里面
  1. Sandy引擎学习笔记:纹理贴图_第2张图片
为了使材质发生变化,并且显示到创建的物体中,主要使用到下面的几句 
  1.          var material:BitmapMaterial=
new  BitmapMaterial(bitmap.bitmapData);//显示材质到物体去
  1.             var ape:Appearance=new Appearance(material); //添加材质 
  1.             plane= new Plane3D( "thePlane",300, 300 );
  2.             plane.appearance=ape;//表面贴图 
赋给了纹理给平面后,为了显示出来,最后一步骤就是场景渲染。 scenne.render();

综述过程:

创建摄影机,创建带摄影机的场景,为场景场景对象物体,(还可为对象物体添加一个些简单的效果)渲染场景。

你可能感兴趣的:(flash,3D,引擎)