unity 渲染相关优化
渲染流程
看一下unity几个比较重要的点 drawcall,Batches,SetPass
1.Drawcall:CPU向GPU发送数据绘制图元
DrawCall 只是 Unity 需要推送到 GPU 命令缓冲区的少量字节
大多数情况可能性能消耗不是drawcall的原因 而是设置渲染状态
2.,Batches合批 优化Drawcall
1.静态批处理(优化GPU 增加内存 包体)
用法:标记为 Batching Static 使用相同材质球
算法:打包的时候会合成为一个mesh
优化:setpasscall的数量
缺点:打包后体积增加 运行时内存占用增大
当场景中有相同的mesh的时候 本来在内存中只需要一个mesh
但如果开启 静态批处理这些相同的mesh也会在内存中生成多份 也就不能复用了 并且会生成一个很大的网格数据
2.动态批处理 (优化GPU 消耗CPU)
用法:shader总共 不能超过900个属性(shader使用 顶点位置,法线 可以包含450个顶点shader使用 顶点位置,法线,切线则只能包含 300个顶点)
不包含缩放,材质一样,lightmap指向的位置一样
优化:一次drawcall绘制多个模型 setpasscall的数量
缺点:CPU计算的消耗
合批中断的情况:
使用多Pass
前向渲染路径中 一个对象如果接受多个光照 会附加PASS
3.GPU Instancing (优化CPU)
用法:相同的材质,相同mesh(和静态批处理不一样的) 一次性发送给GPU,即便使用了MaterialPropertyBlock
算法:仅绘制一个 其他物体复制出来
缺点:不支持SkinnedMeshRenderer
合批中断的情况:
缩放为负,常量缓冲区不同设备 上限的大小不一样,只支持一盏实时光 想多光源支持 可以切换到延迟渲染路径
4.SRP Batcher (优化GPU 消耗CPU)
用法:SRP管线才能使用 不同的材质 只要shader变体相同 就可以 可以优化setpasscall的数量
原理:简单点说就是在一个名为 UnityPerMaterial 的 CBUFFER 中声明所有材质属性 这些材质属性是缓存下来了的 就可以使用不同的材质来进行 合批
通用无法优化的情况:
不相邻 中间夹杂着不同的shader(或者shader变体)
通用优先级:
SRP Batcher-》静态合批-》GPU Instancing-》动态合批
3.SetPass设置渲染通道 就是shader里面的不同的pass同通道
unity 渲染相关优化相关推荐
- unity 渲染帧率优化-OnDemandRendering
FixedUpdate更新速率设置 OnDemandRendering 相关的API: (1) OnDemandRendering.renderFrameInterval = 3; 解释说明: 在一些 ...
- 关于Unity渲染优化,你可能遇到这些问题
原文链接:https://blog.uwa4d.com/archives/QA_Rendering.html 关键字 Draw Call 半透明物体渲染 多层纹理渲染 Graphics.Present ...
- Unity教程之再谈Unity中的优化技术
这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体 这一步主要是为了针对性能瓶颈中的" ...
- 从FrameDebugger看Unity渲染
从FrameDebugger看Unity渲染(一) Unity如何渲染一个3D+2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相 ...
- 【笔记】unity渲染类名词术语概念总结(30个点)
1.线性追踪 亮度值是一个空间函数,而光线追踪做的事情其实是求这个函数在视线线段上的线积分 结果为:光线在视线方向上作用值之和 视线上的所有采样点的亮度之和能用来表示光线在介质中散射的效果 2.光线的 ...
- Unity 面试题汇总(三)Unity 基础相关
Unity 面试题汇总(三)Unity 基础相关 目录 Unity 面试题汇总(三)Unity 基础相关 0.FSM(状态机).HFSM(分层状态机).BT(行为树)的区别 1.什么是协同程序? 2. ...
- Unity渲染教程(九):复杂材质 https://www.jianshu.com/p/5e3af869870f
Unity渲染教程(九):复杂材质 https://www.jianshu.com/p/5e3af869870f 同样的着色器,不同的贴图 用户界面 到目前为止,我们一直都为我们的材质使用Unity默 ...
- unity几种优化建议
最简单的优化建议: 1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU. 2.如果你用U3D自带的SHADER,在表现不差的情况下选择M ...
- Unity 几种优化建议
原文地址:http://www.narkii.com/club/thread-327263-1.html 最简单的优化建议: 1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于 ...
最新文章
- 程序设计第三次作业附加 代码规范
- Safari 不能播放Video ,Chrome等可以 问题解决。
- 视频分类/动作识别数据库研究现状
- python连接池原理_python redis之连接池的原理
- C# asp:Repeater DataSource ListT
- line-height 属性
- spss23出现数据消失_改善23亿人口健康数据的可视化
- java接收二进制数据_java-从套接字读取二进制数据
- 下面哪个字段是http请求中必须具备的_HTTP 协议报文结构及示例
- Leetcode-1156 Swap For Maximum Repeated Substring(单字符重复子串的最大长度)
- Making a Kali Bootable USB Drive
- 预充电电路工作原理_变频器整流回路 为什么要预充电电路-工业支持中心-西门子中国...
- 工商银行近20年实时大数据平台建设历程
- 为什么你的努力可能是没用的?
- TIBCO Jaspersoft 使用教程+JasperReport 生成PDF记录
- 滴滴巨亏背后,打江山容易,守江山难?
- 空间任一点到超平面的距离公式的推导过程
- linux dd命令
- matlab xpc target的论坛,一个Matlab关于XPC Target的问题
- 帮百度AI干脏活累活的公司,都死了