Unity3D技术之Advanced优化图形性能详解.docxVIP

Unity3D技术之Advanced优化图形性能详解.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity3D技术之Advanced优化图形性能详解优化图形性能良好的性能对大部分游戏的成功具有决定作用。下面是一些简单的指导,用来最大限度地提高游戏的图形渲染。图形需要哪些开销游戏的图形部分主要开销来自电脑的两个系统: GPU 或 CPU。优化的第一条原则是找到性能出现问题的地方;因为 GPU 和 CPU 的优化策略不尽相同(甚至可能截然不同 — 因此,通常在优化 CPU 的时候会给 GPU 带来更多工作,反之亦然)。主要瓶颈以及检查瓶颈的方式:GPU 通常受供给比率或内存带宽的限制。以更低的显示分辨率运行游戏是否更快? 如果是,您极有可能受到了 GPU 上的攻击比率限制。CPU 通常受需要渲染的对象的数量限制,又称“绘制调用”。在渲染统计信息 (Rendering Statistics) 窗口中查看“绘制调用”,如果数值超过数千(电脑)或数百(手机),那么您可能需要优化对象数量。当然,这些只是经验法则;瓶颈也可能存在于其他地方。非主要瓶颈:渲染不是问题,不管是对 GPU 还是 CPU!例如,您的脚本或物理可能是问题的根源。使用分析器 找出问题所在。GPU 需要处理的顶点过多。多少个顶点比较“适中”取决于 GPU 以及顶点着色器的复杂程度。对于手机来说,主要图形“不应超过 10 万个”,电脑则“不应超过 1000 万个”。CPU 要处理的顶点过多,因为这些对象要在 CPU 上进行顶点处理。这可能是蒙皮网格、棉布仿真、粒子等。文章出处【狗刨学习网】CPU 优化 — 绘制调用数量为了渲染屏幕上的所有对象,CPU 任务艰巨 — 这些工作包括识别哪些光照效果会影响对象,设置着色器和着色器参数,向显卡驱动发送调用命令,然后显卡驱动准备将命令发送至显卡。所有这些“逐对象” CPU 开销都不小,因此,如果您拥有大量可见对象,它可以累计。例如,Unity如果您有 1000 个三角形,如果所有三角形都在一个网格内,而不是 1000 个独立的网格分别拥有一个三角形,那么,成本将明显降低。Java这两种情况在 GPU 的开销非常类似,但是 CPU 渲染 1000 个对象(而不是一个)需要进行非常繁重的工作。1这两种情况在 GPU 的开销非常类似,但是 CPU 渲染 1000 个对象(而不是一个)需要进行非常繁重的工作。为了减少 CPU 的工作,最好减少可见对象的数量。手动或使用 Unity 的绘制调用批处理将邻近的对象组合在一起。通过将独立的纹理放在更大的纹理地图集等操作,在对象中使用更少的材质。尽量避免使用会导致对象多次渲染的效果(反光、阴影、逐像素光照等,如下所示)。将对象组合起来,让每个网格至少拥有数百个三角形,且每个网格仅使用一种材质 (Material)。组合两个材质不同的对象不会给性能带来任何的改善,理解这一点非常重要。拥有多种材质最常见的原因是两个网格不共享相同的纹理,因此,如果要优化 CPU 性能,应该确保组合的所有对象共享同样的纹理。但是,在正向渲染路径中使用大量像素光照时,有一些情况会使得合并物体不奏效,解释如下。GPU: 优化模型几何体在优化模型几何体时,有两条基本规则:切勿使用过多的三角形尽量降低 UV 贴图接缝和硬边缘的数目(顶点增加一倍)请注意,图形硬件处理顶点的实际数量通常和 3D 应用程序显示的数量有所不同。建模应用程序通常显示几何顶点的数量,例如构建模型不同角点的数量。但是,对于图形卡,将需要一些几何顶点拆分成两个或两个以上的逻辑顶点来渲染。如果顶点有多个法线、UV 坐标或顶点颜色,则必须分割。因此,在 Unity 的顶点计数始终比 3D 应用程序计数高很多。虽然模型中的几何体的总数主要与 GPU 相关,Unity 的某些特性可以在 CPU 上处理模型,例如,网格蒙皮。光照性能完全不需要计算的光照始终是最快的!使用光照贴图 “烘焙”一次静态光照,而不是逐帧计算。生成光照贴图环境的过程仅比在 Unity 将光照直接放置在场景稍微长一点点,但是:它的运行更快(2 种逐像素光照快 2-3 倍)由于可以烘焙全局光照,且光照贴图渲染器可以使渲染结果更光滑,因此,它的视觉效果更好。在很多情况下,这是着色器和内容可以使用的简单的技巧,而无需在场景中添加更多的光照。例如,您无需添加直接照射至相机的光照,取得“边缘照明”效果,只需直接在着色器中添加专门的“边缘照明”计算即可。正向渲染光照逐像素的动态照明将显著增加每个受影响的像素的渲染开销,并可能导致对象多次渲染。在硬件较弱的设备上,如手机或低端 PC GPU,应避免多于一个像素照明 (Pixel Light) 照亮任何单一物件,并尽量使用光照贴图照亮静态物体,而不是逐帧计算其光照。逐顶点的动态照明显著增加顶点转变的开销。尽量避免多个灯照亮任何给定物体。如果使用像素光照,那么,每个

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档