百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

面向英特尔 x86 平台的 Unity* 优化指南: 第 4 部分

haoteby 2025-07-10 14:55 69 浏览

编辑器优化

压缩纹理

不必要的高分辨率纹理很容易成为移动游戏中的瓶颈,造成硬件效率降低。 因此,您不仅需要确认场景中所用纹理是否采用压缩格式,而且还需要核实您已经选中 Generate Mip Maps 复选框,以支持 MIP 贴图处理。 除纹理分辨率之外,MIP 贴图处理类似于之前讨论的 LOD 系统。如果您绘制的任何对象距离摄像头太远,那么不必使用 1024 x 1024 纹理获取其细节,因为该对象可能只有几个像素。

图 44. 在选定纹理的 Inspector 选项卡上压缩纹理和生成 MIP

您可在 GPA 中进行帧捕获,并查看 Texture选项卡了解您想要调查的绘制调用,以确认纹理得到压缩,且生成了 MIP。需要注意的是,生成 MIP 贴图将产生更多数据,因此实际上在有些情况下会导致性能下降。请您一如既往地在应用中确认这一选项。

图 45. 在帧分析器中查看纹理的第 4 MIP 层和格式。

移动存储着色器

当您在移动应用中使用存储着色器时,需要切换至 Unity 提供的移动版副本,以确保使用精确度较低的浮点值和移动特定优化。 选择您的材料,并在下拉菜单中找到 Mobile 部分,以在应用中进行试用(图 41)。

图 46. Unity 中的存储着色器

静态批处理

批处理将着色相似的几何图形整合至单绘制调用中。这能够减少通常额外调用造成的驱动程序开销。 您可通过选择 File->Build Settings>Player Settings 并勾选所列“Static Batching”选项打开静态批处理。Unity 现默认支持这些设置。

图 47. Other Settings 中 Rendering 下的 Static Batching 和 Dynamic Batching 复选框

对于所有不会迁移的游戏对象,勾选静态复选框。这可支持将静态批处理功能用于共享一种材料的多个相似对象。

图 48. 基于对象的批处理勾选

  • 确保您使用 Renderer.sharedMaterial,而非 Renderer.material,以保证材料共享。
  • 尽可能地将同一材料所用的多个纹理(漫射、凹凸高光等)整合至一个纹理图集中,以增加批处理对象的数量。

大多数时候,静态批处理可为您的应用提供巨大优势,但在有些情况下最好不要使用它。 如果您需要减少内存使用,那么最好不要使用静态批处理。 事实上,共享几何数据的对象必须将各个实例顶点/索引数据的副本整合至绘制调用的顶点和索引缓冲区内。 Unity 举例说明了静态批处理在密林场景中可能出现问题的情形。在这种极端环境中,您需要在发出调用之前,将所有使用相同材料的树木整合至相应缓冲区中,但这可能导致性能问题。

动态批处理

动态批处理虽与静态批处理的概念相同,但主要针对动态对象(可移动对象)进行绘制调用批处理。

  • 动态批处理仅适用于总顶点属性低于 900 的对象(可能随时更改)。
  • 接收实时阴影的对象将无法进行批处理。

HDR – 高动态范围

如果您使用延迟渲染技术获得了具有 HDR 效果的场景(例如爆炸和燃烧),那么通过勾选 Camera 设置中的 HDR 选框,您将发现绘制调用大幅减少。 需要注意的是,每个摄像头都有其自己的 HDR 复选框。 在使用带有延迟渲染的 DirectX 10 或更高版本时,最好使用 HDR。 HDR 与片段着色器之间有着最紧密的关联。 如果您想要使用 HDR 效果,那么请遵循以下准则:

  • 使用延迟渲染
  • 针对需要 HDR 产生效果的各摄像头,勾选 HDR 选框(图 44)

图 49. Camera 设置中的 HDR 选项

选择最佳渲染路径

为您的应用选择最佳渲染路径在很大程度上依赖于您想要完成什么工作。以下内容简要概述了 Unity 提供的各个渲染路径及其优劣。希望通过这些信息,您能够了解根据您项目的具体情况,您应选择哪种路径,但与其余这些优化一样,始终需要对各个选项进行测试! 了解哪种渲染路径最适合您的游戏的绝佳方式是使用代码编写一个开关。您只需按下开关按钮即可改变渲染路径,然后通过 Unity 分析器和 GPA 实时观察每个路径的效果。

顶点光照渲染

图 50. 通过顶点光照路径渲染的场景最终渲染目标

  • 优点
    1. 仅按照每顶点,而非每像素,进行照明计算
      • 将对带有 1024 个顶点的模型(覆盖 4k 显示器的整个全屏窗口)进行照明计算:
        • 使用每顶点照明方法,计算 1024 次
        • 使用每像素照明方法,计算 8294400 次
    2. 可显著提高移动性能
    3. 简化分析。在基础通道中完成一切。
  • 缺点

图 51.顶点光照渲染路径细分(全部在基础通道中)

正向渲染

图 52. 通过正向路径渲染的场景最终渲染目标

  • 优点
    • 通过每像素、每顶点及球谐技巧组合完成照明
    • 支持实时阴影及其他每像素效果
    • 不会因需要在延迟路径中构建图形缓冲区而产生内存成本
  • 缺点
  • 通道细分
    • 基础通道
      • 首先,为最亮的平行光保留每像素光线。
      • 然后,绘制最多另外 3 条标记为重要的每像素光线。 如果没有标记为重要的光线,那么选择场景中的其次最亮的 3 条。如果有更多标记为重要的光线,超过了 Project->Quality 中的“per-pixel light count”设置值,那么这些在其他通道中完成。
      • 接下来,每顶点渲染最多 4 条光线。
      • 最后,使用球谐计算绘制剩余光线(始终计算这些值,因此本质上在 GPU 上不固定)。
    • 每像素照明通道
    • 半透明对象通道

图 53. 通过正向路径渲染的场景最终渲染目标

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...