三维场景的渲染优化(一) 

                   三维场景的渲染优化(一)

                        ——如何进行有效的性能评测                          

  对于任何一个3D应用程序来说,追求场景画面真实感是一个无止尽的目标,其结果就是让我们的场景越来越复杂,模型更加精细,这必然给图形硬件带来极大的负荷以致于无法达到实时绘制帧率。因此,渲染优化是必不可少的。在渲染优化之前,我们需要对应用程序性能进行系统的评测,找出瓶颈,对症下药。对于3D应用程序来说,影响性能的十分多,同时不同的硬件配置条件下,瓶径也会有所不同。因此,对应用程序进行有效的性能评测,不仅需要对整个渲染管线原理有深入地了解,此外借助一些评测工具能让我们的工作事倍功半。

  我们知道渲染流水线的速度是由最慢的阶段决定首先,因此对一个3D应用程序进行评测,首先要分析影响渲染性能的瓶颈是在CPU端还是GPU端,由此来绝对我们优化的对象。由于目前的图形加速硬件都具有强大的,这个瓶径往往出现在CPU端,我们可以通过一些工具获得这个信息,如Nvidia的NVPerfHUD。在评测选项中,我们可以查看CPU和GPU繁忙度这项,当CPU繁忙度是100%时,GPU还不是时,我们知道性能的瓶颈在CPU端,我们必须CPU端的操作,同时尽量的“喂饱”GPU,把一些费事的计算移值到GPU上,例如硬件骨骼蒙皮。当GPU端是瓶颈时,说明GPU超荷负载,有可能是因为有过多的渲染填充,也就是多边形数量太多(当前强大的GPU使得这种情况并不多见。

  CPU上的瓶颈产生有两个方面,一是因为复杂AI计算或低效的代码,二是由于不好的渲染批处理或资源管理。对于第一种情况,我们可以利用VTurn这类的工具,把应用程序中所有函数调用时间从大到小的排列出来,我们就很容易知道问题所在。对第二种情况来说,同样利用NVPerfHUD,我们可以查看每帧的DP数目,看看批的数量是否过多(有一个具体的换算公式),查看纹理内存的数目,是否消耗了过多的显存。利用这些工具,我们基本上能够定位应用程序的瓶颈。在应用程序内部,编写一个内嵌的profiler功能,能更加便利的进行评测,此外利用Lua这样的脚本程序,让我们运行时调试,也能提高评测的效率。

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值