Unity3D游戏开发之Advanced优化图形性能详解

Unity3D游戏开发之Advanced优化图形性能详解

ID:39891029

大小:24.20 KB

页数:4页

时间:2019-07-14

Unity3D游戏开发之Advanced优化图形性能详解_第1页
Unity3D游戏开发之Advanced优化图形性能详解_第2页
Unity3D游戏开发之Advanced优化图形性能详解_第3页
Unity3D游戏开发之Advanced优化图形性能详解_第4页
资源描述:

《Unity3D游戏开发之Advanced优化图形性能详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Unity3D游戏开发之Advanced优化图形性能详解优化图形性能良好的性能对大部分游戏的成功具有决定作用。下面是一些简单的指导,用来最大限度地提高游戏的图形渲染。图形需要哪些开销游戏的图形部分主要开销来自电脑的两个系统:GPU或CPU。优化的第一条原则是找到性能出现问题的地方;因为GPU和CPU的优化策略不尽相同(甚至可能截然不同—因此,通常在优化CPU的时候会给GPU带来更多工作,反之亦然)。主要瓶颈以及检查瓶颈的方式:·GPU通常受供给比率或内存带宽的限制。·以更低的显示分辨率运行游戏是否更快?如果是,您极有可能受到了GPU上的攻击比率限制。·CPU通常受需要

2、渲染的对象的数量限制,又称“绘制调用”。·在渲染统计信息(RenderingStatistics)窗口中查看“绘制调用”,如果数值超过数千(电脑)或数百(手机),那么您可能需要优化对象数量。当然,这些只是经验法则;瓶颈也可能存在于其他地方。非主要瓶颈:·渲染不是问题,不管是对GPU还是CPU!例如,您的脚本或物理可能是问题的根源。使用分析器找出问题所在。·GPU需要处理的顶点过多。多少个顶点比较“适中”取决于GPU以及顶点着色器的复杂程度。对于手机来说,主要图形“不应超过10万个”,电脑则“不应超过1000万个”。·CPU要处理的顶点过多,因为这些对象要在CPU上进行

3、顶点处理。这可能是蒙皮网格、棉布仿真、粒子等。文章出处【狗刨学习网】CPU优化—绘制调用数量为了渲染屏幕上的所有对象,CPU任务艰巨—这些工作包括识别哪些光照效果会影响对象,设置着色器和着色器参数,向显卡驱动发送调用命令,然后显卡驱动准备将命令发送至显卡。所有这些“逐对象”CPU开销都不小,因此,如果您拥有大量可见对象,它可以累计。例如,如果您有1000个三角形,如果所有三角形都在一个网格内,而不是1000个独立的网格分别拥有一个三角形,那么,成本将明显降低。Java这两种情况在GPU的开销非常类似,但是CPU渲染1000个对象(而不是一个)需要进行非常繁重的工作。1

4、这两种情况在GPU的开销非常类似,但是CPU渲染1000个对象(而不是一个)需要进行非常繁重的工作。为了减少CPU的工作,最好减少可见对象的数量。·手动或使用Unity的绘制调用批处理将邻近的对象组合在一起。·通过将独立的纹理放在更大的纹理地图集等操作,在对象中使用更少的材质。·尽量避免使用会导致对象多次渲染的效果(反光、阴影、逐像素光照等,如下所示)。将对象组合起来,让每个网格至少拥有数百个三角形,且每个网格仅使用一种材质(Material)。组合两个材质不同的对象不会给性能带来任何的改善,理解这一点非常重要。拥有多种材质最常见的原因是两个网格不共享相同的纹理,因此

5、,如果要优化CPU性能,应该确保组合的所有对象共享同样的纹理。但是,在正向渲染路径中使用大量像素光照时,有一些情况会使得合并物体不奏效,解释如下。GPU:优化模型几何体在优化模型几何体时,有两条基本规则:·切勿使用过多的三角形·尽量降低UV贴图接缝和硬边缘的数目(顶点增加一倍)请注意,图形硬件处理顶点的实际数量通常和3D应用程序显示的数量有所不同。建模应用程序通常显示几何顶点的数量,例如构建模型不同角点的数量。但是,对于图形卡,将需要一些几何顶点拆分成两个或两个以上的逻辑顶点来渲染。如果顶点有多个法线、UV坐标或顶点颜色,则必须分割。因此,在Unity的顶点计数始终比

6、3D应用程序计数高很多。虽然模型中的几何体的总数主要与GPU相关,Unity的某些特性可以在CPU上处理模型,例如,网格蒙皮。光照性能完全不需要计算的光照始终是最快的!使用光照贴图“烘焙”一次静态光照,而不是逐帧计算。生成光照贴图环境的过程仅比在Unity将光照直接放置在场景稍微长一点点,但是:·它的运行更快(2种逐像素光照快2-3倍)·由于可以烘焙全局光照,且光照贴图渲染器可以使渲染结果更光滑,因此,它的视觉效果更好。在很多情况下,这是着色器和内容可以使用的简单的技巧,而无需在场景中添加更多的光照。例如,您无需添加直接照射至相机的光照,取得“边缘照明”效果,只需直接

7、在着色器中添加专门的“边缘照明”计算即可。正向渲染光照逐像素的动态照明将显著增加每个受影响的像素的渲染开销,并可能导致对象多次渲染。在硬件较弱的设备上,如手机或低端PCGPU,应避免多于一个像素照明(PixelLight)照亮任何单一物件,并尽量使用光照贴图照亮静态物体,而不是逐帧计算其光照。逐顶点的动态照明显著增加顶点转变的开销。尽量避免多个灯照亮任何给定物体。如果使用像素光照,那么,每个网格渲染的次数和被像素灯照亮的次数一样。如果结合两个距离较远的网格,就将增加组合物体的有效大小。照亮这个组合物体的任何一部分的所有像素灯都会在渲染过程中计算,所需

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。