§5.6总结
本章中你学到很多关于创建一个完全成熟的图像引擎,并且你已经经历了相当多的新的图形类。这些类大多数很简单,不过对于本书未来的项目它们还是很重要的。
除了你探索的许多单元测试之外,本章帮助你持续关注必须解决的问题,来使得图像引擎运行。你也学习了把3D数据转换到2D屏幕空间的过程,在XNA中使用右手系矩阵的方式。为了在shader中使用这些矩阵,在XNA中需要这些shader渲染某些东西,你可以快速地看一看顶点vertex 和 pixel shader,不过在下面几章你将更加深入shader。
如果你浏览了新的类和工程项目概览,你能看到比起前几个项目多得多的命名空间,你也变动了一些类,并且为了你的新需要而重构它们。这很重要,因为转换2D为3D不是一件容易的事,你总是可以改进这些类工作的方式,并且使得单元测试更简单。当你的引擎变得越来越复杂,有坚固的框架甚至更重要,万一有什么东西不能按你所想的方式正常工作,带有许多单元测试的框架让你能够依靠。否则,在本书末尾编写一个单元测试仅仅在几行代码中就渲染一个具有许多shader的复杂的汽车、在带有shadow mapping的场景中超过20,000个多面形、布置这些屏幕特效(post screen shader)和炫酷的玻璃shader,是根本不可能的。
BaseGame是你现在的应用程序的主入口,所有内部类都以某种方式被连接到它。BaseGame类不仅储存device或者content manager,而且允许你得到渲染区域的宽度和高度,所有你需要渲染shader的矩阵,并且BaseGame类在属性中允许你存储许多更有用的功能,例如,要快速启用或者禁用alpha 混合(enable 或 disable alpha blending)。
最后你学了更多一些关于使用Xbox 360 来测试你的图像引擎,如果你不足够早的在控制台上测试你的游戏所有的缺陷可能发生。在下一章,你学习所有关于shader的内容,在第八章你将做一些炫酷的normal mapping,并且你最后修正XNA模型、tangent data切线数据等等所有的这些问题。然后在第九章你学习关于强大的post screen shader,它快速带给你的整个游戏另样的外观,你可以借助于XNA在Xbox上玩作为范例游戏的Rocket Commander。
发布时间:2008/8/30 下午3:34:45 阅读次数:5321