Balder 3D開發系列之--材質貼圖

1、Balder中的材質vim

目前的Balder版本中,對材質的要求以下:app

1.支持圖片格式:PNG 和 JPEG。spa

2.圖片大小要求:必須是2的冪,例如:2,4,8,16,32,64,128,256等等。code

 

2、實戰演練component

        首先,仍是和之前同樣,別忘記導入Balder的dll文件,具體操做,看前面的文章。完成這一步後,須要在xaml文件中添加以下代碼:xml

1      xmlns:Execution="clr-namespace:Balder.Execution;assembly=Balder"
2      xmlns:View="clr-namespace:Balder.View;assembly=Balder"
3      xmlns:Geomentry="clr-namespace:Balder.Objects.Geometries;assembly=Balder"
4      xmlns:Material="clr-namespace:Balder.Materials;assembly=Balder"
5      xmlns:Lighting="clr-namespace:Balder.Lighting;assembly=Balder"

 

今天,咱們重點關注的Material類,它纔是今天的主角,經過它,咱們能夠輕鬆的實現對silverlight3D模型的貼圖操做。它包括以下成員:對象

這裏,咱們主要是用到裏面的DiffuseMap屬性,經過它,咱們就能夠實現經過引用本地圖片資源來實現對3D模型的貼圖操做,至於其它屬性,之後再介紹,那麼該怎麼使用它呢?其實很簡單,由於在Balder中實現了[TypeConverter(typeof(UriToImageMapTypeConverter))]
        public IMap DiffuseMap { get; set; }類型轉換,這樣,在xaml中只要經過引用本地圖片資源的Uri就能轉換成Image對象,並進行貼圖操做:blog

 1     < Execution:Game  Width ="640"  Height ="480"  Background ="Black" >
 2               < Execution:Game.Camera >
 3                   < View:Camera  Position ="-10,18,-22"  Target ="0,0,0" />
 4               </ Execution:Game.Camera >
 5               < Lighting:OmniLight  Position ="0,-10,0"   />
 6               < Geomentry:Box  Dimension ="20,1,20"  InteractionEnabled ="True"   >
 7                   < Geomentry:Box.Material >
 8                       < Material:Material  DiffuseMap ="/MaterialDemo;component/Assets/f.png" />
 9                   </ Geomentry:Box.Material >
10               </ Geomentry:Box >
11           </ Execution:Game >
很簡單吧?最後看看效果怎麼樣:
 
 
相關文章
相關標籤/搜索