Silverlight C# 游戏开发:L2 自定义模型导入

本文介绍如何在Silverlight C#游戏开发中导入自定义3D模型。使用3D Max创建并导出ASE格式的模型文件,通过Balder库中的Mesh对象加载该文件,并在3D场景中正确显示。

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程序:

获取 Microsoft Silverlight

如果你觉得太小,可以修改摄像机的坐标来调整观测的范围,关于摄像机和灯光,我们在下一个篇章中介绍。

源代码下载地址:点击这里下载工程

工程中如果缺少Balder.dll请在这里快速下载:SL4_Balder.rar

推荐Silverlight游戏开发博客:深蓝色右手 

 

 

posted on 2010-11-08 09:48 nowpaper 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/nowpaper/archive/2010/11/08/1871497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值