代码改变世界

Silverlight 5 3d 游戏开发(4)Silverlight 5 RC 版BasicEffect学习

2011-09-02 17:29  老咩  阅读(2465)  评论(6编辑  收藏  举报

问题
Silverlight 5 RC 版 2011年9月1日发布了,我第一时间浏览了一遍,哎呀,好像该有的都有了。之所以前一篇和这一篇时间间隔很长,一方面固然是因为我懒惰,另一方面也因为Silverlight 5 beta 版实在太不给力了。如今Silverlight 5 RC 版不但内置了BasicEffect,DualTextureEffect,EnvironmentMapEffect,SkinnedEffect 这几个效果,还支持EffectTechniquehe和Pass,唯一的遗憾仍然仅支持 Shader 2.0。不过高兴的是,我看见了RenderTarget2D,于是我翻开GraphicsDevice,欣慰的看见了那2个SetRenderTarget方法,这意味着我们可以设置渲染目标,从此我们可以真正无忧无虑的开发游戏了。

那么,首先,我觉得我应该学习下新的效果类(对于SL来说是新的),这几个效果类和Xna上是相同的,尤其是BasicEffect,如果不是特别需要,BasicEffect 几乎可以满足一个简单的游戏。(注:BasicEffect 好像是可以找到hlsl源文件的)。

解决方案
Silverlight 5 RC 版对命名空间做了一些改动,渲染相关的全部分配在Microsoft.Xna.Framework,
Microsoft.Xna.Framework.Graphics,
Microsoft.Xna.Framework.Graphics.Shaders,
Microsoft.Xna.Framework.Graphics.Extensions,
Microsoft.Xna.Framework.Math,
System.Windows.Xna。
这几个类库下。如果你用过 SL 5 beta 版,你会发现,你无须再去下载Microsoft.Xna.Framework.Math这个库,已经自带了,同时Microsoft.Xna.Framework.Silverlight也更换成了System.Windows.Xna。

通过命名来看,这完全就是 Xna/E 啊(注:Silverlight 最早叫 Wpf/E)。还等什么,找个Xna来移植吧。

工作原理
我直接找了个Xna 的官方示例,就是绘制1个正方体并用BasicEffect来渲染,我几乎只花了几分钟的时间,就移植到了 Silverlight 5 RC 版本上。

代码的过程很清楚,而BasicEffect的每项内容也可以查看Xna 或 Silverligh 5 RC 版的帮助文档。
 

代码

请安装 Silverligh 5 RC 版。代码下载