Sandy引擎學習筆記:顏色材質

來源:互聯網
上載者:User

 

 

第二個問題:建立了一個立方體後,怎樣為為這個立方體添加材質?

首先最簡單的材質,我們會想到顏色,顏色是最容易理解。因此我們在這裡應該學會如何為我們的物體添加材質。

  1. package 
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.events.*;
  5.     import sandy.core.Scene3D;
  6.     import sandy.core.scenegraph.*;
  7.     import sandy.primitive.*;
  8.     import sandy.core.data.*;
  9.     import sandy.materials.*;
  10.     import sandy.materials.attributes.*;
  11.     public class My3D2 extends Sprite
  12.     {
  13.         private var scenne:Scene3D;
  14.         private var camera:Camera3D;
  15.         private var ranY:Number=0.5;
  16.         private var box:Box;
  17.         public function My3D2()
  18.         {
  19.             camera=new Camera3D(400,400);//設定攝影機大小和位置
  20.             camera.z=-300;
  21.             var root:Group=createScene();
  22.             scenne=new Scene3D("scene1",this,camera,root);//建立帶攝像機的情境
  23.             addEventListener(Event.ENTER_FRAME,Run);
  24.         }
  25.         private function createScene():Group
  26.         {
  27.             var g:Group=new Group();
  28.             box=new Box("box",100,100,100);
  29.             var materialAttr:MaterialAttributes = new MaterialAttributes( 
  30.                                  new LineAttributes( 0.5, 0x2111BB, 0.4 ),
  31.                                  new LightAttributes( true, 0.1)
  32.                               );//建立材質屬性,線性光,
  33.             var material:Material = new ColorMaterial( 0xFFCC33, 1, materialAttr );//建立顏色材質
  34.             material.lightingEnable = true;
  35.             var app:Appearance = new Appearance( material );//為物體建立材質表面
  36.             box.rotateX=10;
  37.             box.rotateY=0;
  38.             box.appearance = app;//指定材質表面
  39.             g.addChild(box);
  40.             return g;
  41.         }
  42.         private function Run(event:Event):void
  43.         {
  44.             scenne.render();
  45.             box.rotateX+=1;//讓立方體會在x軸上旋轉
  46.             box.rotateY+=1;//讓立方體會在y軸上旋轉
  47.         }
  48.     }
  49. }

 

說明:建立了立方體後,我們可以為我們的立方體添加材質或者指定立方體的顏色屬性,這時候我們需要使用到顯示顏色材質的類和函數,sandy為我們提供了一個類。

 

  1. var materialAttr:MaterialAttributes = new MaterialAttributes( 
  2.                                  new LineAttributes( 0.5, 0x2111BB, 0.4 ),
  3.                                  new LightAttributes( true, 0.1)
  4.                               );//建立材質屬性,線性光,
  5.             var material:Material = new ColorMaterial( 0xFFCC33, 1, materialAttr );//建立顏色材質
  6.             material.lightingEnable = true;
  7.             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();

這裡就創造出一個具有顏色的立方體了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.