Unity性能优化

https://www.jianshu.com/p/3b285110069f
https://blog.csdn.net/e295166319/article/details/79107399《第16章 Unity中的渲染优化技术》

  • 角色模型面数:一个角色移动平台一般300 ~ 1500面,PC平台一般1500~ 4000面。

  • 模型骨骼数:一般不多于30个骨骼


    https://docs.unity3d.com/Manual/ModelingOptimizedCharacters.html
  • Draw Call计算公式
    http://www.cnblogs.com/zhaoqingqing/p/4623839.html
    在来谈到 Batch,其实也是 Draw Call 的另一种称呼。你可以想成每一次的 Draw Call 会产生一个 Batch,而 Batch 里装的是物件顶点信息,Batch 由 CPU 通过 “驱动程序” 将顶点信息送往 GPU,GPU接手后将物件画在画面上。由此可知,越多 Draw Call,CPU 就越忙碌。这下更清楚知道 Draw Call 数量所影响的是 CPU 效能而非 GPU。
    NVIDIA 在 GDC 曾提出,25K batchs/sec 会吃满 1GHz 的 CPU,100% 的使用率。所以他们推出了一条公式,来预估游戏中大概可以 Run 多少个 Batch:

    Draw Call计算公式

    Draw Calls = 25K * GHzcpu * Percentcpu / FrameRate ;
    举个例子:如果你的目标是游戏跑30FPS、使用2GHz的CPU、20%的工作量发給Draw Call來使用,那你每秒可以有多少Draw Call呢?
    333 Batchs/Frame = 25K * 2 * 20% / 30 .

性能优化最直观的目标是提升帧率,帧率可以理解为我们常说的刷新率,通常用FPS表示,即游戏每秒钟的刷新次数Frames per second.

用几个数字大致了解性能优化的目标:

  • FPS = 1/ T ; T为每帧游戏消耗的CPU时间。
    通常比较理想的帧率为60,相应地,一帧的CPU的时间为T=1/60=0.016秒;
  • 苹果A11处理器最高时钟频率大约为 2.5 GHz,其运行速度为每秒6000亿次浮点计算,0.6T FLOPS(float point operation per second)。
    以帧率60计算,A11处理器的运算次数为每帧不超过6000亿/60=100亿次计算。
  • 如果将应用程序的一次指令集调用视为一次计算,可以理解为应用程序的Update中的函数语句调用次数不超过100亿次。
  • 应用程序或者说游戏的一次Update到底有哪些事情在处理?

一次Update的工作:
逻辑+渲染


资源优化标准
Mesh动态模型:

  • 面片数<3000
  • 材质数<3
  • 骨骼数<50
    静态模型:
  • 顶点数<500
    Texture贴图:
  • 长宽<1024
    音乐资源优化
  • Audio长时间音乐(背景音乐)压缩格式 mp3
  • 短时间音乐(音效)非压缩格式 wav
    Shader
  • 尽量减少复杂数学运算、
  • 减少discard操作


一、 Draw Call batching
https://docs.unity3d.com/Manual/DrawCallBatching.html
绘制调用合并,主要有static batching(合并渲染批次)、dynacmic batching、instancing(实例渲染)
Unity内置的批次合并,首先要求要合并的物体使用同一个材质。
1 static batching:静态批次合并
静态批次合并,是指Unity可以将静止并且材质相同的物体合并为一个巨大的mesh来渲染。

  • 将游戏对象设置为静态。
  • 使用同一个材质。只有使用同一材质的物体才可能被合并。因而,如果想要获得好的合并效果,要尽可能多的让不同的物件模型共用同一个材质。
  • 纹理打包。如果有两个材质球,使用的Shader相同,仅仅是贴图不同,可以考虑合并这些贴图到一个大的贴图里,这个过程叫做图集打包——Texture atlasing。一旦这些贴图在一个图集里,就可以将这两个材质,用一个材质球代替。

2 dynamic batching:动态批处理

3 GPU Instancing:多实例渲染

GPU Instancing

https://www.cnblogs.com/88999660/p/5541695.html
在Unity中用手动方式降低Draw Call

如果我们想减少draw call,在Unity中或者在其他引擎上,可以尽量减少使用的material(材质)。基本上,这些可以还原为这些简单的步骤:
1.整理所有的material并且通过他们的shader类型收集他们
2.第二步:对于使用相同shader的材质,将他们的贴图做成一个图集(Atlas)
3.创建一个material,它将包含shader和图集(Atlas)
4.网格的所有UV重新映射,使用Shader适配图集的坐标
5.用映射的网格创建出步骤3的material


二、LOD
Levels of Detail的简称,意为细节层次。
三、Occlusion Culling
遮挡剔除,Culling Distance。

角色模型
针对角色模型

1. 角色模型
关闭光照探头、
关闭反射探头、
关闭接收阴影、一般效果要求开启投射阴影,但是接收应该没有必要开启,视情况而定


VBO(顶点缓冲对象Vertex Buffer Objects-是让APP存储和操作GPU内存中数据的一种机制,当GPU处理数据时,不需要从CPU内存中读取,可以节约内存带宽) Total的值是207.2KB,这与场景里没放物体207.2KB一样大小,这说明了动态批处理不仅优化了CPU的DC,还有优化了Memory(内存)大小!


影响因子:
1.光照

  • 光照方程:


    图片引用:https://www.jianshu.com/p/2e73fbee0d62
  • 光照方程的加标示版本:


    图片引用:https://www.jianshu.com/p/2e73fbee0d62
  • 阴影

  1. 雾气

  2. LOD

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