您的位置:首页 > 其它

Sandy引擎学习笔记:颜色材质

2012-02-16 20:46 405 查看


第二个问题:创建了一个立方体后,怎样为为这个立方体添加材质?

首先最简单的材质,我们会想到颜色,颜色是最容易理解。因此我们在这里应该学会如何为我们的物体添加材质。

package

{

import flash.display.Sprite;

import flash.events.*;

import sandy.core.Scene3D;

import sandy.core.scenegraph.*;

import sandy.primitive.*;

import sandy.core.data.*;

import sandy.materials.*;

import sandy.materials.attributes.*;

public class My3D2 extends Sprite

{

private var scenne:Scene3D;

private var camera:Camera3D;

private var ranY:Number=0.5;

private var box:Box;

public function My3D2()

{

camera=new Camera3D(400,400);//设定摄影机大小和位置

camera.z=-300;

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();

box=new Box("box",100,100,100);

var materialAttr:MaterialAttributes = new MaterialAttributes(

new LineAttributes( 0.5, 0x2111BB, 0.4 ),

new LightAttributes( true, 0.1)

);//创建材质属性,线性光,

var material:Material = new ColorMaterial( 0xFFCC33, 1, materialAttr );//创建颜色材质

material.lightingEnable = true;

var app:Appearance = new Appearance( material );//为物体创建材质表面

box.rotateX=10;

box.rotateY=0;

box.appearance = app;//指定材质表面

g.addChild(box);

return g;

}

private function Run(event:Event):void

{

scenne.render();

box.rotateX+=1;//让立方体会在x轴上旋转

box.rotateY+=1;//让立方体会在y轴上旋转

}

}

}

说明:创建了立方体后,我们可以为我们的立方体添加材质或者指定立方体的颜色属性,这时候我们需要使用到显示颜色材质的类和函数,sandy为我们提供了一个类。

var materialAttr:MaterialAttributes = new MaterialAttributes(

new LineAttributes( 0.5, 0x2111BB, 0.4 ),

new LightAttributes( true, 0.1)

);//创建材质属性,线性光,

var material:Material = new ColorMaterial( 0xFFCC33, 1, materialAttr );//创建颜色材质

material.lightingEnable = true;

var app:Appearance = new Appearance( material );//为物体创建材质表面

ColorMaterial( 0xFFCC33, 1, materialAttr );//创建颜色材质,

参数一,指定颜色, 透明度,材质属性,这个参数默认为null,我们为这个立方体制作一个可见光和线性光

ColorMaterial()constructor
//函数原型

public function ColorMaterial(p_nColor:uint = 0x00, p_nAlpha:Number = 1, p_oAttr:MaterialAttributes = null)

Creates a new ColorMaterial.

创建了颜色的属性,为了指定物体,这时候还要制作一个表面赋给立方体。

var app:Appearance = new Appearance( material );//为物体创建材质表面

box.appearance = app;//指定材质表面,

最后场景渲染;

scenne.render();

这里就创造出一个具有颜色的立方体了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: