首页 > Computer > XNA > XNA Kick Start
2009
02-15

XNA Kick Start

前言

 

       很久以前,翻译了《Managed DirectX9 Kick Start》,在过去的几年中,继续自学,虽然仍未达到自己所希望的目标,不过对托管DirectX以及实时渲染技术已稍有研究。不敢妄谈游戏引擎,但已能实现一些小把戏,以自娱。学习中深感国内资料的匮乏,故凡遇所喜之外文,则边学边翻,期望对有相同喜好之人有所帮助。《Managed DirectX9 Kick Start》是带领我进入实时渲染技术的入门书,由MDX的设计者所编写,全书浅显易懂,又不乏专家级的指导。如今XNA已发布,可惜资料尚少,为了能帮助爱好者入门和学习,希望能在前人的肩膀上,自己编写一份关于XNA的学习资料。

       本教程假设你已经熟悉C#语法,Visual Studio.net 2005开发环境,以及简单WinForm程序开发基础。其中第一条是必须的,贸然学习图形技术,只会让你半途而废。这是一份专注于XNA中图形技术的教程,主要讨论3D图形设计;编程语言语法基础,配置开发环境,通用程序开发技术,以及网络通信都不在本教程讨论范围之内。我将假设你从来没有接触过计算机图形技术,从最基础的内容开始讲解,除了解释API的用法之外,还会附带在API之后的图形学原理和算法。

       此外,为了确保你能运行XNA程序,应该安装以下硬件和软件:

硬件:一块支持Shader Model 2.0的显卡,如果你不知道Shader Model是什么,那么需要保证你的显卡是Nvidia Geforce FX或更高级别的显卡,以及ATI Radeon 9XXX系列或更高级别的显卡。

软件:WindowsXP wih SP2或更高的操作系统,最新版本的DirecxtX SDKVisual C# 2005 ExpressXNA Game Studio ExpressXna Framework)。

       鉴于本人愚钝,错误总是难免的,如果发现了,请及时纠正(clayman_joe@yahoo.com.cn)。

       阅读本资料,说明你已经接受了如下条件:为了保证我的权益,请勿转载,勿把本文用于任何商业用途。小小要求,仅此而已,不希望我免费提供的东西再被人恶意剽窃。所有文章将不定期在本人bloghttp://blog.csdn.net/soilwork/)和中国XNA开发网(http://www.xnadev.cn/)更新。如有需要,我会在每个章节结束之后提供pdf文档。

 

 

第一章 敲开计算机图形的大门

 本文版权归我所有,仅供个人学习使用,请勿转载,勿用于任何商业用途。
由于本人水平有限,难免出错,欢迎大家和我交流。
作者:clayman
Blog:
http://blog.csdn.net/soilwork
clayman_joe@yahoo.com.cn 
 

 

       这一章,我将带领你学习最基本的基础知识,不要急,我们将从最下面一块积木开始,最终搭建出一个完整的城堡。

 

    如果你希望深入学习一门技术,那么先了解这门技术的来龙去脉,将大有帮助。好了,带上火把和地图(猎枪??不不,我们不需要它),让我们先来进行一点考古工作。

 

XNA的历史

       切始于20021220号,随着DirectX 9的发布,SDK中加入了Managed DirectX 1.0。顾名思义,Managed DirectX.net平台上的DirectX,它封装了DX中的大部分功能,几乎实现了函数的一一对应,以便开发者在.net平台上编写3D程序。当然,如果你还要深究,就会发现在开发DirectX 8.1的后期,有一个被称为DirectX for Visual Basic的项目,当.net runtime的第一个beta版本出现后,这个项目变为了DirectX.net,它就是Managed DirectX的雏形。

       Managed DirectX早期的开发过程中,当移植完了所有的核心API后,开发者发现它的性能只能达到原来C++代码的40%,于是接下来的几个月中,ms的程序员们进行了大量工作来解决所有性能瓶颈问题,最终发行版本的性能已经达到了C++代码的90%甚至更高。

       接下来,进入了.net 2.0时代,在200510月的DirectX SDK中,加入了Managed DirectX 2.0的第一个beta版本,除了把API升级到.net 2.0以外,这个版本的MDX还在性能和易用性上有了提高。作为beta1来说,这个版本的MDX有很多Bug,虽然在之后的sdk中,消除了大部分Bug,但却一直停留在beta版本,也没有任何正式的文档。接下来的几个月,再也没有了关于MDX2.0的消息,MDX团队成员的blog也停止了更新。这是一段黑暗的时期,传说东方的天空出现了阴影,一时谣言四起(指环王???-_-,有人说ms要完全放弃这个项目,也有人说ms要用另一个项目来代替它。

       终于,在2006814号的Gamefest 2006上,ms宣布了XNA。其实在更早的时候,就有了一些关于XNA的消息,但ms一直遮遮掩掩,谁也说不准它到底是什么。至此,谜底终于解开,XNA是基于.net的专用于游戏开发的API,可以同时在windowsxbox360上运行。好奇的考古学者总是想弄清每一个名字是什么意思,XNA,听起来和DNA差不多,有什么特殊含义呢?很不幸,msxna就是xna,并没有什么特殊含义,也不是缩写。不过民间的传闻却说X代表ms的图形技术(DirectX?),N代表下一代(Next?),A代表构架(architecture?),所以XNA是“下一代图形构架”的含义。好了,你可能有些迷糊了,说了半天这个XNA究竟和MDX 2.0有什么关系呢?简单的说XNA包含了MDX,仔细观察之后,你就会发现Microsoft.Xna.Framework.Graphics中大部分函数都来自于MDX 2.0

       200612月的DirectX SDK中,移除了所有关于Managed DirectX 2.0的内容,宣告XNA时代的正式来临。当然,至于Managed DirectX 1.0还将长期保留在SDK中,但不再进行更新,只会有一些错误

最后编辑:
作者:wy182000
这个作者貌似有点懒,什么都没有留下。

留下一个回复