Learning XNA 4.0 第一章_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Learning XNA 4.0 第一章

Learning XNA 4.0 第一章

 2011/1/14 7:39:31  裴小星  http://xxing22657-yahoo-com-cn.javaeye.com  我要评论(0)
  • 摘要:第1章XNA4.0有哪些新特性?本章中,我将回顾XNA4.0所发生的主要改变。如果您熟悉XNA3.x或其它版本的话,这将是开始学习本书的很好的起点。如果您从未接触过XNA,可能应该跳到下一章。您不会错过任何信息,因为本章涵盖的内容在其它章节中都有介绍。改进的项目文件夹结构当您在XNA4.0中创建游戏项目时,首先会注意到解决方案的结构改变了。在XNA早期的版本中,内容管道(contentpipeline)从一个名为Content的子文件夹中获得游戏内容,Content位于您创建的游戏项目中
  • 标签:

第1章 XNA 4.0有哪些新特性?

?

?   本章中,我将回顾XNA 4.0所发生的主要改变。如果您熟悉XNA 3.x或其它版本的话,这将是开始学习本书的很好的起点。如果您从未接触过XNA,可能应该跳到下一章。您不会错过任何信息,因为本章涵盖的内容在其它章节中都有介绍。?

?改进的项目文件夹结构

?   当您在XNA 4.0中创建游戏项目时,首先会注意到解决方案的结构改变了。在XNA早期的版本中,内容管道(content pipeline)从一个名为Content的子文件夹中获得游戏内容,Content位于您创建的游戏项目中,在解决方案资源管理器中可见(见图1-1)。??

?

图1-1 XNA 3.x 解决方案示例

?

  在XNA 4.0中,Content文件夹在您的解决方案中被移动到新的项目中。内容项目将被列入到名为GameProjectNameContent(请用您项目名替换GameProjectName)的目录下,并且后面带有用括号括起来的“Content”字样(见图1-2)。
  在内容项目上添加您所有的游戏内容(声音,纹理和模式等等),与XNA 3.x中添加它们到内容文件夹的方法相同。您还需要使用相同的代码通过内容管道访问内容,跟您在XNA 3.x中的操作相同。这一变化使得同一个项目的多个版本(也就是,如果您建立Windows和Xbox 360都可用的项目)的界面更加友好些同时也少了些混淆。

?

图1-2 XNA 4.0 解决方案示例

?

为Windows Phone 7系列开发游戏

?

  与XNA框架的早期版本相同,XNA 4.0被设计用于跨平台开发。开发人员使用XNA 4.0可以为Windows、Xbox 360以及现在的Windows Phone 7系列编写游戏。不仅仅是那样,除了一些资源管理与屏幕分辨率的问题,几乎100%地为这些平台中的其中之一所编写的代码同样也都可以在其它平台上使用。这样就最大限度的为游戏开发者提供了针对每个平台创建游戏的弹性。
  想了解更多关于Windows Phone 7系列游戏开发的信息,请参阅第17章。?

图形适配标准

  在当今支持DirectX 10或更高、强大的Xbox 360与Windows Phone 7系列引进的一线显卡之间,XNA框架支持在具有不同硬件性能的广泛的硬件上进行开发。在XNA早期的版本中,这些硬件差异必须在运行时(runtime)上处理,这经常会导致平台相关性代码。为了帮助促进在这些不同的设备上进行开发,XNA 4.0引入了图形适配标准(graphics profile )的概念。这些标准允许开发者通过支持配置标准所指排的特定图形API包来选定某些硬件设备。
  在XNA 4.0中有两种配置标准:Reach和HiDef。HiDef是设计用于高功率的、一线硬件,而Reach是设计用来支持更宽泛的硬件设备。Reach标准提供一个有限的图形特征集合并且它是HiDef的子集。当选择使用Reach标准编写游戏时,您牺牲了一些更强大的图形API,但同时也确保您的游戏可以在更宽泛的设备(尤其是Windows,Xbox 360和Windows Phone)上运行,假设这些设备都符合XNA 4.0的最小规格要求。
HiDef标准设计用来支持当前最强大的显卡。您可以使用HiDef标准来专注于Xbox 360硬件以及至少支持DirectX 10显卡的基于Windows的电脑。
  通过使用GraphicsAdapter.IsProfilesSupported方法在运行时上您可以辨别您的硬件支持哪个配置标准。下面的表1-1 中列出了Reach和HiDef标准之间更多的细节差异:

?

表1-1 XNA图形适配标准比较

?

?

Reach

HiDef

支持平台

Windows Phone 7系列,Xbox 360,与带有至少支持shader model 2.0DirectX 9 GPUWindows PC

?

Xbox 360,带有DirectX 10(或更高)GPUWindows PC

着色器模型

2.0(但Windows Phone不支持自定义着色器)

?

3.0+Xbox 360支持自定义着色器扩展如vfetch,但它在Windows上不可用)

最大纹理尺寸

2048

?

4,096

最大立方图尺寸

512

?

4,096

最大体纹理尺寸

不支持体纹理

?

256

无二次幂限制的纹理

支持但带有限制:不支持环绕选址模式,不支持mipmaps,对无二次幂限制的纹理不支持DXT压缩

?

无二次幂限制的立方图

?

无二次幂限制的体纹理

不支持体纹理

?

每次Draw调用的基元最大值

65,35

?

?

1,048,575

顶点流最大值

16

?

16

最大顶点流幅度

25

?

255

索引缓冲格式

16(bit)

?

1632

顶点元素格式

Color,Byte4,Single,
Vector2,Vector3,
Vector4,Short2,Short4,
NormalizedShort2,
NormalizedShort4

?

所有的Reach顶点元素格式,加上HalfVector2,HalfVector4

纹理格式

Color,Bgr565,Bgra5551,
Bgra4444,NormalizedByte2,
NormalizedByte4,Dxt1,
Dxt3,Dxt5

所有的Reach纹理格式,加上Alpha8,Rg32,Rgba64,
Rgba1010102,Single,Vector2,
Vector4,HalfSingle,
HalfVector2,HalfVector4;

浮点纹理格式不支持过滤

?

顶点纹理格式

不支持顶点纹理

Single,Vector2,Vector4,
HalfSingle,HalfVector2,
HalfVector4

渲染目标格式

调用QueryRenderTargetFormat()来找出支持什么

?

调用QueryRenderTargetFormat()来找出支持什么

多重渲染目标

?

?

上限为4;必须都有相同的位深度;支持阿尔法混合与每个渲染目标的独立写屏蔽

闭塞查询

?

独立阿尔法混合

  • 相关文章
发表评论
用户名: 匿名