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. 为了使材质发生变化,并且显示到创建的物体中,主要使用到下面的几句 
    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;//表面贴图 
    2. 赋给了纹理给平面后,为了显示出来,最后一步骤就是场景渲染。
    3. scenne.render();

    综述过程:

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

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值