您的位置:首页 > 其它

[转]3D引擎渲染效率如何提升

2012-06-24 19:59 316 查看
gametp

之前参加游戏开发交流会时做的一些笔录以及本人的一些愚见,贴出来与大家分享,请莫见笑。

这个演讲是完美技术总监?忘记了,好像是,做的一个演讲,分享3D渲染效率优化方面的经验,以下是部分演讲内容:

今天非常荣幸能和大家一起分享一下引擎优化方面的技术。说到引擎优化,其实它涵盖的范围非常广泛,今天只有一个小时时间,所以只能给大家简单介绍一些比较实用的方法和分析方法。引擎优化涉及到内存分配、多线程加载、Shider的优化、LOD,说到LOD,里面一般涉及到地形的LOD、人物模型的LOD等等很多方面。首先对游戏引擎进行优化,必须先有一些分析的方法,找出它实际的引擎的瓶颈所在。一般的分析方法有两种,一种是使用这些现成的分析工作,比如说NV的PerfHUD和英特尔的vTune,这些工具都非常强大,但是由于种种原因,它们都有一些限制,毕竟这些工具都是为自己的厂商服务的,所以在分析程序的时候会有一些限制。今天我们主要介绍程序内建统计分析函数的方法来分析程序的瓶颈。

编者:以前只是听说完美的研发中心比较强大,现在是切身的感受到了。

下面介绍一下如何设计统计分析函数,从应用上可以分为两种,宏观统计和微观统计,宏观统计就是根据自己需求统计一些现在游戏渲染的东西,比如地形、人物模型这些渲染的统计。微观统计就是比较贴近于硬件,如统计一些D3D的渲染状态的更新次数,这些是属于微观统计。从功能上分,又分为时耗统计和技术统计,时耗例如如渲染地形需要多长时间,技术统计是指渲染一个地形有多少个三角形面这些方面。下面我具体来介绍一下宏观统计里面的时耗统计是什么样的。

关于效率统计
关于水的渲染优化
下面简单介绍一下渲染状态的管理,D3D里面的SetRenderState函数设置渲染状态是一个非常耗时的操作,但是它每种渲染状态设置的时候,消耗的时间并不是相同的,具体的也可以通过前面所讲的统计方法,分析出到底哪个状态消耗的时间最多,我们就尽可能减少那个状态的设置。

关于渲染状态管理
下面介绍一下游戏当中的LOD。LOD技术主要是指对不同复杂度的模型,对同一对象采用不同复杂度的模型来渲染的一种技术,主要是根据视点与对象的远近来调整不同复杂度的模型。

关于游戏中的LOD
编者:感谢演讲者的分享,稀饭的同学抱走吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息