图形引擎优化
1. 画更少的东西
什么都不画,效率最高。只画正好需要画的,效率最佳。
场景管理:四叉树、BSP、K-Tree。
视锥剪裁
背面剔除
shader中的像素剪裁: 遮挡查询,剔除被遮挡像素等
等等。
优化的地方也就是讲需要绘制的选择的更精确。
2. 减少必须消耗部分的调用,尤其是每帧更新时
d3d的一些API每次调用有不少的消耗,所以有了材质管理,进行材质排序,减少消耗。
3. 打包
GPU和CPU通信的消耗较大,那么一次尽量传送更佳大小的数据,打包碎小的数据。 应用到网络传输等等都是相通的。
4. 特定情况下的优化
例如显卡的Early -Z、 Only z double depth buffer。
例如数据格式或算法导致的cache命中率下降
5. 减少重复计算
频繁计算却没有改变的地方,使用cache
6.预计算‘
都说以空间换时间,还可以以硬盘的空间换时间
例如:lightmap
6.profile
算法设计
大道至简~ 将复杂的问题细化,分而治之。
软件设计
个人经验有限,没办法统管全局,只能先模块化设计,然后模块通信,系统集成----自底而上的设计