§8.6总结
在这一章中你学习了所有的post-screen shader并完成了您的图形引擎。图形效果很好,调整效果也很有趣。但本书针对的是游戏开发,图形只是工作的一部分。在后面几章,你将把重点放在声音、输入和游戏引擎之类的其他方面。有些代码已经被应用在以前的游戏中了,特别是Rocket Commander游戏使用了声音,先进的输入类和很多游戏逻辑。
下面是post-screen shader使用的一个概括:
- 天空立方体映射(这是一个pre-screen shader,但工作原理类似)。
- 在场景上绘制纹理(混合覆盖)。
- 翻转场景贴图(很容易,只要使用1-color)。
- 将场景贴图转换成黑白。
- 新增屏幕边界效果,本章做的是变暗屏幕边界模拟电视的效果。
- Glowing技技术,以及如何让他们通过down-sampling执行得更快。
- 使用glow shader中的额外alpha通道模仿HDR效果。你还可以使用支持超过每通道8bit的渲染目标,在场景贴图中保存HDR颜色信息,在后面可以用来实现HDR效果。
- 边缘检测(当然,这是你要自己完成的部分)。
- 菜单效果,噪声纹理,half-tone效果等等。
- 色彩校正,包括亮度变化,对比度调整,影响整体外观的增加色彩。通过颜色校正的post-screen shader.还能实现灰度效果。
- 运动模糊,对每个像素或是对整个屏幕。更多的技巧,使用10×10网格代替整个画面渲染以改善性能的技巧也被提及。
- 还有更多shader。
归功于每一章节的例子,您可以在很短时间内创建您的XNA图形引擎。在这一章您可以通过XnaGraphicEngine的源代码测试许多post-screen shader,这个引擎现在已经相当庞大大和强壮了,您可以处理shader,三维数据,精灵,post-screen shader等许多事情而不用担心任何执行的细节,因为引擎会为您处理这一切。
使用多线程还使你的Rocket Commander游戏性能更好,但多线程编写起来很难。
依靠图形引擎,现在可以很容易地编写游戏了,但不要停止写单元测试,当您尝试找出为什么某菜单没有正常工作时单元测试能帮助你找到原因。通过菜单单元测试,您可以迅速找到问题所在,通过游戏中部分单元测试去除错也比遍历整个游戏等待错误发生快得多。更多的图形效果,物理,以及赛车游戏将在本书的最后一部分讨论,现在可以进入第三部分了,里面有另一个很棒的游戏(XNA Shooter),你将更深入地了解声音,输入和游戏逻辑的细节。
发布时间:2008/9/25 下午4:07:53 阅读次数:5489