您的位置:首页 > 其它

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

2008-10-05 17:59 489 查看
问题:怎样才能为我的创建的物体创建纹理贴图?


p

package

{

import flash.display.Sprite;

import flash.display.Bitmap;

import flash.display.BitmapData;

import flash.events.*;

import sandy.core.Scene3D;

import sandy.core.scenegraph.*;

import sandy.core.data.*;

import sandy.materials.*;

import sandy.materials.attributes.*;

import sandy.primitive.*;

public class MyTexture extends Sprite

{

private var scenne:Scene3D;

private var camera:Camera3D;

private var img:BitmapData=new BrickWall(0,0);

private var bitmap:Bitmap=new Bitmap(img);

private var plane:Plane3D;

public function MyTexture()

{

camera=new Camera3D(400,300);

camera.z=-400;

var root:Group=createScene();

scenne=new Scene3D("scene1",this,camera,root);

addEventListener(Event.ENTER_FRAME,Run);

}

private function createScene():Group

{

var g:Group=new Group();

var material:BitmapMaterial=new BitmapMaterial(bitmap.bitmapData);

var ape:Appearance=new Appearance(material); //添加材质

plane= new Plane3D( "thePlane",300, 300 );

plane.appearance=ape;//表面贴图

g.addChild(plane);

return g;

}

private function Run(event:Event):void

{

scenne.render();

//plane.rotateX+=5;

plane.rotateY+=1;

//plane.roll+=5;

}

}

}

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

import sandy.core.Scene3D;

import sandy.core.scenegraph.*;

import sandy.core.data.*;

import sandy.materials.*;

import sandy.materials.attributes.*;

import sandy.primitive.*;

其中 import sandy.materials.*;

import sandy.materials.attributes.*;

是负责材质方面工作。我们要关注这个包里面的方法方便我们调用。

制作思路:

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

private var img:BitmapData=new BrickWall(0,0);

private var bitmap:Bitmap=new Bitmap(img);

看这里面


为了使材质发生变化,并且显示到创建的物体中,主要使用到下面的几句
var material:BitmapMaterial=new BitmapMaterial(bitmap.bitmapData);//显示材质到物体去

var ape:Appearance=new Appearance(material); //添加材质

plane= new Plane3D( "thePlane",300, 300 );

plane.appearance=ape;//表面贴图

赋给了纹理给平面后,为了显示出来,最后一步骤就是场景渲染。

scenne.render();

综述过程:

创建摄影机,创建带摄影机的场景,为场景场景对象物体,(还可为对象物体添加一个些简单的效果)渲染场景。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: