Windows Phone 7对3D的支持还是不错的,据说是用OpenGL/ES做的,使用起来倒是也有点那种感觉。另外,写本文的另一个原因是我的第一个3D试验竟然遇到了问题,花了1个小时才搞定,所以也一并记录下来,供遇到和我同样的问题的朋友参考。
本文就不讲XNA 4.0的游戏框架了,直接上一段代码,该代码使用VertexPositionColor渲染了一个三角形,程序运行一切正常。
运行结果如下:
在确认了3D开发的这种代码结构以后,用VertexPositionTexture渲染同样的三角形,只是这次采用纹理贴图,代码如下:
啰嗦一句,在此代码中VertexPositionTexture的第二个Vetex2代表的是UV坐标,对应的含义是(0,0)点对应了纹理图片的左上角,(1,1)点对应了纹理图片的右下角。
上述代码在运行的时候会在VS2010的输出窗口中显示:
A first chance exception of type 'System.NotSupportedException' occurred in Microsoft.Xna.Framework.Graphics.dll
A first chance exception of type 'System.Threading.ThreadAbortException' occurred in Microsoft.Xna.Framework.dll
同时模拟器里的程序直接退出,看不到结果。原因是什么呢?疑惑并仔细检视代码中……
与前一个彩色三角形对比,顶点顺序没变,摄像机位置没变,投影矩阵没变,按说是不可能出现这种问题的,而且程序直接崩了,没有信息抛出,真是很郁闷。
经过不断的试错,在宣布放弃之前,忽然想起来关于纹理方面的一个注意事项。有过3D开发经验的朋友都知道,纹理是要求符合2的整数次方对齐的,而我所加载的来自于外部任意图片的纹理不符合这一要求,所以程序挂了。
又查了一些资料,找到了准确的原因。原来是Windows Phone 7 的XNA中默认的纹理寻址模式使用了Wrap,造成了与GPU的不兼容,如果改成Clamp就好了。
看来在这个地方微软得要有文档说明才好,否则还真是难找问题所在。修改后的代码如下:
最终的模拟器结果是:
不管怎么说,Windows Phone 7的XNA游戏开发框架以及3D方面的开发接口还是很出色的,顶一下微软,并希望这个平台能尽快发展起来。
附Camera的代码:
——欢迎转载,请注明出处 http://blog.csdn.net/caowenbin ——
分享到:
相关推荐
本书适合于Windows Phone 7开发入门的读者,也适合于从其他智能手机平台转向Windows Phone 7平台的读者,同时对于有Windows Phone 7开发经验的读者也极具参考价值。 本书系统论述了Windows Phone 7操作系统的应用...
本书旨在分享强大的Microsoft编程工具(诸如Silverlight、XNA和Visual Studio 2010 Express Edition一类)的使用心得,介绍了如何使用现有的C#和.NET编程技能来开发一些Windows Phone 7应用程序。本书作者团队探讨了...
Windows Phone7是微软重新打造windows mobile品牌之后推出的一款产品。
第一本全面介绍Windows Phone 7开发的中文图书! 中国移动开发者社区技术专家 倪浩/Magicboy/苏世耀 联合编 微软最有价值专家 张欣/姜泳涛/林永坚 联袂推荐 系统讲解+操作指导引领您快速入门 项目实例+实战演练帮助...
windows phone7手机开发实例,适于初学者。 调用天气api,实现天气预报
因此编写Silverlight for Windows Phone 7开发系列文章,从简单到深入的讲述Silverlight for Windows Phone 的开发。这个系列主要讲述一个网络收音机的开发过程,这一网络收音机程序涉及到Silverlight控件的使用,...
Windows Phone7完美开发征程 源代码
101 Windows Phone 7 Apps开发指南,该书结合大量当前流行Windows Phone 7应用,介绍Windows Phone 7应用开发以及设计方法。 该书适合Windows Phone 7开发人员参考学习。 全彩高清晰,非常好的书
Windows Phone7 完美开发征程 PDF完整版 里面是我网盘的下载地址
内容提要: 本书对WindowsPhoneXNA游戏开发的流程进行了详细的讲解,对其核心内容和开发技巧进行了深入的说明。...本书还针对WindowsPhone8的新特性以及如何将WindowsPhone7游戏向WindowsPhone8上迁移做了详细的说明。
[Packt Publishing] Windows Phone 8 游戏开发教程 (英文版) [Packt Publishing] Windows Phone 8 Game Development (E-Book) ☆ 图书概要:☆ A practical guide to creating games for the Windows Phone 8 ...
Windows Phone 7 中ListBox的使用
深入浅出Windows Phone 8.1应用开发(Runtime框架)_源代码
Windows Phone 7程序的开发得使用C#程序语言。存在两种框架(方式)可以开发Windows Phone程序,一种就Silver Light,另外一种是XNA Framework。Silver Light用来开发Internet富客户端程序,XNA Framework者主要用于...
控件中的tiles链接到web站点在你的博客中使用这个控件可以表达你对WP7的喜爱。 Windows Phone Blog Menu is a Silverlight navigation control that looks like a Windows Phone 7. The live tiles in the control ...
Windows Phone7完美开发征程完整pdf,本人感觉可以,需要的下吧.
Windows Phone 7开发教程汇总 Windows Phone 7是微软重新打造windows mobile品牌之后推出的一款产品,从外观到软件代码都有了很大的改动。与此前的Windows Mobile系统相比,Windows Phone 7有着完全不同的屏幕主页和...
Windows Phone 7开发环境安装教程汇总,供学习参考。
windows phone 7 游戏开发试验报告
利用微软的C#+XNA4.0框架,你可以在Windows、XBox360、Windows Phone 7、Zune等平台上开发3D游戏。