Silverlight C# 遊戲開發:L2 自訂模型匯入

來源:互聯網
上載者:User

Balder的Geometries裡提供了很多的已有的模型,比如立方體、圓柱等等,但是我們在開發遊戲的時候大多情況下都是使用3D設計工具製作自訂的3D模型,而本篇則介紹的是如何匯入顯示一個自訂的3D模型。

首先我們可以看看Geometries的內建模型,你可以在物件瀏覽器或Geometries.來查看。

裡面的Heightmap我們在後面會專門介紹,今次我們主要介紹Mesh(網格對象),使用它來完成自訂的模型匯入。

然後,請準備好一個3D設計工具,3Dmax或者Maya再或者Lightwave再再或者……,好吧,我們簡單點,使用福士化的3DMax,開啟Max軟體,從Object中拉一個壺出來,選擇檔案->匯出,選擇ASE檔案格式。

儲存名字為teapot.ase的檔案,將這個檔案添加到我們的工程中,這個工程完全可以從L1中修改,請參看或下載《Silverlight C# 遊戲開發:L1 3D世界的建造》

將檔案的編譯方式修改成為Resource,即資源方式,建立Silverlight控制項名字為Lesson02,然後添加如下代碼到建構函式中

//L1
Game game = new Game() { Width = 600, Height = 400 };
game.Camera = new Camera();
game.Camera.Position = new Coordinate(100, 150, 100);
game.Camera.Target = new Coordinate(0, 0, 0);
game.Children.Add(new OmniLight() { Position = new Coordinate(0, 0, 0) });

//L2
//new一個網格對象Mesh
Mesh Teapot = new Mesh();
//設定座標
Teapot.Position = new Coordinate(0, 0, 0);
//開啟互動操作(可使用滑鼠旋轉)
Teapot.InteractionEnabled = true;
//讀取檔案的名字,當前支援ase的檔案格式
Teapot.AssetName = new Uri("/Balder_Studio;component/Res/teapot.ase", UriKind.Relative);
//將茶壺添加到Game當中
game.Children.Add(Teapot);

LayoutRoot.Children.Add(game);

 

請注意,AssetName賦值的Uri的目錄和你添加到的位置需要一樣,這方面如果不是太明白,請參看後面附帶的工程,原始碼下載。

這時你會發現可能會有一些錯誤,那是因為沒有添加命名控制項引用,添加命名空間的Using到檔案頭部:

using Balder.Execution;
using Balder.Lighting;
using Balder.View;
using Balder.Math;
using Balder.Objects.Geometries;

好了,不要忘記將MainPage中的控制項添加改成Lesson02,運行起來看看效果吧。下面是Silverlight程式:


如果你覺得太小,可以修改攝像機的座標來調整觀測的範圍,關於攝像機和燈光,我們在下一個篇章中介紹。

原始碼:點擊這裡下載工程

工程中如果缺少Balder.dll請在這裡快速下載:SL4_Balder.rar

推薦Silverlight遊戲開發部落格:深藍色右手 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.