设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 游戏开发 >> 《Windows游戏编程大师技巧》(第二版)第11章
精品推荐
游戏开发点击TOP10
·DirectX5.0最新游戏编程指南 DirectDraw教程篇 二、第一个DirectDraw实例
·用Excel编写小游戏
·五子棋的原代码
·游戏开发方面相关的电子书下载
·游戏文件系统的解决方案
·基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
·用MFC构造DirectX应用框架
·游戏开发开门
·《Windows游戏编程大师技巧》(第二版)第11章
·DirectX8.1的DirectDraw7研究手记(三)
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

《Windows游戏编程大师技巧》(第二版)第11章

作者: 来源:网络文章 时间:2005-12-17 22:39:07

《Windows游戏编程大师技巧》(第二版)第11章(13) 提示
我很难形容类树结构在3D图形学中有多重要,希望你已经理解了上述内容。否则,当你构造二分空间分区(????)来解决渲染问题时,你将会陷入指针递归的苦海中。:)

你注意到我省略了如何删除一个节点。我是有意这样做的。因为删除一个节点非常复杂,有可能破坏子树的父节点和其与子节点间的连接。我想,删除节点就留作给读者的一个练习好了。这里我向大家建议一本好的数据结构参考书——由Sedgewick撰写,Addison Wesley 出版社出版的《Algorithms in C++》(该书中文版《算法I~IV(C++实现)——基础、数据结构、排序和搜索(第三版)》已由中国电力出版社出版。——编者),这本书深入讨论了树结构及其相关算法。
最后,读者可以检验一下二叉搜索树的一个实例程序——DEMO11_3.CPPEXE。该程序允许你创建一个二叉搜索树并使用三种算法遍历它。这也是一个控制台程序,因此需要正确地编译它。

优化理论
比起编写任何其他程序来说,编写游戏更重视性能优化。视频游戏永无止境地不断突破硬件和软件的极限。游戏编程人员总是希望加入更多的生物、特效、声音以及更好的智能等等。因此,优化至关重要。
在这一节,我们将讨论一些优化技术以帮助你进行游戏编程。如果你对此有浓厚的兴趣,有很多关于该方面的书可以参考,如由Addison Wesley出版社出版、Rick Booth编著《Inner Loops》,由Coriolis 集团出版、Mike Abrash 编著的《Zen of Code Optimization》,AP出版社出版、Mike Schmit编著的《Pentium Processor Optimization》。

运用你的头脑
编写优化代码的第一要旨是理解编译器和数据结构,以及你编写的C/C++程序是如何被最终转换为可执行的机器代码的。基本思想是使用简单的程序设计技巧和数据结构。你的代码越复杂、设计越精巧,编译器将其变换为机器代码就越困难,所以(在大多数情况下)其执行速度也就越慢。以下是编程时需要遵循的基本原则:
• 尽可能使用32位数据。8位数据虽然占用空间较少,但英特尔的处理器是以32位为基准的,并针对32位数据进行了优化。
• 对于频繁调用的小函数而言,应声明为内联函数。
• 尽可能使用全局变量,但避免产生可读性差的代码。
• 避免使用浮点数进行加法和减法运算,因为整数单元通常比浮点单元运算快。
• 尽可能使用整数。尽管浮点处理器几乎和整数处理一样快,但整数更精确。所以如果你不需要精确的小数位,就使用整数。
• 将所有的数据结构均调整为32个字节对齐。在大多数编译器上你可以使用编译器指示字来手工完成,或在代码中使用#pragma。
• 除非是简单类型的参数,否则尽可能不使用值传递的方式传递参数。应当使用指针。
• 在代码中不要使用register关键字。尽管Microsoft声称它能够加快循环,但这会造成编译器没有足够可用的寄存器,结果是生成糟糕的代码。
• 如果你是位C++程序员,用类和虚函数是可以的。但软件的继承和层次不要过多。
• 奔腾级的处理器使用一个内部数据和代码缓存。了解这一点后,要确保函数代码短小以适应缓存的大小(16KB至32KB以上)。此外,在储存数据时,以其将被访问的方式进行存储。这样可以提高缓存的命中率、从而减少访问主存或二级缓存的次数。须知,主内存或二级缓存的访问速度要比内部缓存的访问速度慢10倍。
• 
• 奔腾级的处理器具有类似RISC的内核,因此擅长处理简单指令,并能够在数个执行单元内同时处理二个以上的指令。因此,不推荐在一行代码中书写晦涩难懂的代码,最好编写较简单的代码。即使你可以将这些代码合并成具有同样功能的一行代码,也尽量改成简单的。

数学技巧
由于游戏编程中大量的工作在实质上是数学问题,因此了解执行数学运算的更好方法是非常值得的。有许多通用的技巧和方法可供你利用,以提高程序运行速度:
参与整数运算的数必须是整数,参与浮点运算的数必须是浮点数。类型转换必然降低性能。所以除非是迫不得已,否则不要进行类型转换。
通过左移位操作可以实现整数与2的任何次幂的乘法运算。同样地,通过右移位操作可以实现整数与2的任何次幂的除法运算。对于整数与非2的次幂的数的相乘和相除可以转换为和运算或差运算。例如,640虽不是2的整数次幂,但512和128是2的整数次幂;所以当某整数与640相乘最好的方法是进行如下变换:

1.《Windows游戏编程大师技巧》(第二版)第11章(1)
2.《Windows游戏编程大师技巧》(第二版)第11章(2)
3.《Windows游戏编程大师技巧》(第二版)第11章(3)
4.《Windows游戏编程大师技巧》(第二版)第11章(4)
5.《Windows游戏编程大师技巧》(第二版)第11章(5)
6.《Windows游戏编程大师技巧》(第二版)第11章(6)
7.《Windows游戏编程大师技巧》(第二版)第11章(7)
8.《Windows游戏编程大师技巧》(第二版)第11章(8)
9.《Windows游戏编程大师技巧》(第二版)第11章(9)
10.《Windows游戏编程大师技巧》(第二版)第11章(10)
11.《Windows游戏编程大师技巧》(第二版)第11章(11)
12.《Windows游戏编程大师技巧》(第二版)第11章(12)
13.《Windows游戏编程大师技巧》(第二版)第11章(13)
14.《Windows游戏编程大师技巧》(第二版)第11章(14)
15.《Windows游戏编程大师技巧》(第二版)第11章(15)
16.《Windows游戏编程大师技巧》(第二版)第11章(16)
17.《Windows游戏编程大师技巧》(第二版)第11章(17)
18.《Windows游戏编程大师技巧》(第二版)第11章(18)
19.《Windows游戏编程大师技巧》(第二版)第11章(19)
20.《Windows游戏编程大师技巧》(第二版)第11章(20)
21.《Windows游戏编程大师技巧》(第二版)第11章(21)
22.《Windows游戏编程大师技巧》(第二版)第11章(22)
23.《Windows游戏编程大师技巧》(第二版)第11章(23)
24.《Windows游戏编程大师技巧》(第二版)第11章(24)
25.《Windows游戏编程大师技巧》(第二版)第11章(25)
26.《Windows游戏编程大师技巧》(第二版)第11章(26)
27.《Windows游戏编程大师技巧》(第二版)第11章(27)
28.《Windows游戏编程大师技巧》(第二版)第11章(28)
29.《Windows游戏编程大师技巧》(第二版)第11章(29)
30.《Windows游戏编程大师技巧》(第二版)第11章(30)
31.《Windows游戏编程大师技巧》(第二版)第11章(31)
32.《Windows游戏编程大师技巧》(第二版)第11章(32)
33.《Windows游戏编程大师技巧》(第二版)第11章(33)
34.《Windows游戏编程大师技巧》(第二版)第11章(34)
35.《Windows游戏编程大师技巧》(第二版)第11章(35)
36.《Windows游戏编程大师技巧》(第二版)第11章(36)
37.《Windows游戏编程大师技巧》(第二版)第11章(37)
38.《Windows游戏编程大师技巧》(第二版)第11章(38)
共38页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [388 :>

《Windows游戏编程大师技巧》(第二版)第11章 相关文章:
《Windows游戏编程大师技巧》(第二版)第11章 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com