Unity 关于图形渲染优化的建议摘录

在Player Settings 中开启Graphics Jobs 可以显著提升图形渲染的表现。

Graphics Job 勾选时,将允许Unity 使用Worker threads 来处理原本在主线程和渲染线程

减少批次(batches)或者令更多的物体共用同样的渲染状态(render state)可以减少SetPass calls。

减少需要被渲染的物体数量可以减少SetPass calls。

减少可见的物体数量

调整摄像机的远裁剪面并使用雾效来弥补远处物体无法被看见的失真现象

使用摄像机(camera)组件的layer cull distance 属性为不同层次的物体设置裁剪距离,如此可以保持场景的真实的前提下减少需要被渲染的物体数量

使用occlusion culling 技术

减少每个物体需要被渲染的次数可以减少SetPass calls 的数量。

实时光照、阴影和反射等效果可能会导致物体被渲染多次,从而影响性能。挑选合适的渲染路径对渲染性能有很大影响。一般情况下,Deffered Rendering 更适合使用大量实时光照、阴影和反射效果的高端设备,Forward Rendering 更加适合低端设备。

渲染实时阴影时,首先需要将会产生阴影的所有物体渲染进shadow map,因此有明显的渲染消耗。

对于静态物体(不会移动的物体)可以使用烘焙技术来预计算光照从而减少实时光照计算。

对于使用实时阴影的项目,使用Shadow Distance、Shadow Cascades 等技术有效优化实时阴影造成的渲染消耗。

反射探针可以创建非常真实的反射效果,但是会造成batches 上的开销,应该尽量减少使用。

合并批次从而减少SetPass calls 的数量。

可以合并为同一个批次(batch)的物体必须满足两个条件:使用同一个材质的同一个实例;拥有完全相同的材质设置(texture、shader、shader 的参数等)。尽量让更多的物体使用相同的材质以更好地利用合批(batching)技术

通过图集技术可以增加合批物体数量:对于那些使用相同材质,仅仅是材质实例使用不同贴图的情况,使用图集技术将不同的贴图打包进一个图集中,这样就可以使用同一个材质实例,达成合批条件。

注意Renderer.material 和Renderer.sharedMaterial 的区别,前者被修改后将会创建一个新的材质实例(无法合批)。

对于Shadow Caster Pass,只要其内部使用的属性相同,即使其在不同的材质中仍然可以和合批。

静态合批(static batching)可能会导致更高的内存和存储消耗:静态合批前,每个参与合批的物体都会创建一个副本,因此不适合密集型显示的物体群(例如茂密森林中的树木)

动态合批会导致一定的cpu 消耗。

目前支持合批的组件有MeshRenderer、Trail Renderers、LineRenderers、Particle System 和Sprite Renderers。

SkinnedMeshRenderer 不支持合批,可以使用SkinnedMeshRenderer.BakeMesh 方法创建一个合适的pose 后改用MeshRenderer 以支持合批技术。

如果目标平台支持,尝试开启Player Settings 中的GPU Skinning,让GPU 接管蒙皮。

由于半透明物体需要严格按照从后往前的顺序渲染,相较于不透明物体而言,他们更难达成合批条件。

提升像素填充率(filling rate)的手段

降低片元着色器的计算复杂度

检查透明材质、粒子系统和UI 元素的重叠情况,防止过量的overdraw

过量的后处理很容易导致像素填充率问题,如果需要用到大量的后处理效果,考虑将这些后处理合并到一个pass 中,例如Unity 提供的PostProcessing Stack

解决内存带宽问题

通过降低纹理内存占用来解决内存带宽问题。

使用纹理压缩技术可以极大减少纹理的大小。

使用Mipmap 技术可以降低远处物体占用内存带宽的问题。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容