| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 关于Unity批处理 -> 正文阅读 |
|
[游戏开发]关于Unity批处理 |
1. 静态批处理条件:标明为static,相同材质的物体。 ????????打包时把子模型的顶点信息转换到世界空间下,节约计算资源,子模型共享材质,没有渲染状态的切换,Command Buffer会缓存绘制命令,起到了渲染优化的目的。 缺点:打包后体积增大,运行时占用的内存也会增大。 限制条件: ????????· 改变Renderer.Material会造成一份材质的拷贝,可以用sharedMaterial ????????·?lightmap不同无法参与批处理 2. 动态批处理条件:动态物体,相同材质。 ????????在场景绘制之前,将视野内共享同一材质的模型顶点信息变换到世界空间,合批后的模型会在同一个DrawCall绘制。 缺点:增加CPU消耗,合批的消耗小于不合批才有意义。 限制条件: ? ? ? ? ·?着色器所有顶点属性总数需要小于900 ? ? ? ? ·?代码动态改变材质不能合批 ? ? ? ? ·?有镜像变换(scale为负数)不能合批(还看到一种说法:scale为负数的轴如果是偶数 ???????????是可以合批的 -- 未验证) ????????· lightmap不同无法合批 ????????· 前向渲染模式下,一个物体接受多个光照会产生多余的模型提交和绘制,从而 ? ? ? ? ? 附加了多个Pass导致无法合批 3. GPU Instancing条件:相同材质,相同mesh。 ? ? ? ? 运行时,将在视野中的物体,使用Constant Buffer将物体位置、缩放、UV偏移、lightmapIndex等保存在显存中的统一/常量缓冲区。 限制条件: ????????·?缩放为负值不参与加速 ????????· 代码动态改变材质变量后不算同一材质,可以通过将颜色变化等变量加入常量缓冲器实现 ????????· 受限于常量缓冲器在不同设备上的大小的上限 ????????· 只支持一盏实时灯光,多光源实例化可以切换到延迟渲染路径 4. SRP Batcher条件:使用SRP,开启SRP Batcher,物体shader中变体一致。 ????????将视野中符合要求的对象用“Per Object” GPUBuffer,将物体的位置、缩放、UV偏移、lightmapIndex等相关信息保存在GPU内存中,材质信息保存在显存的“同一/常量缓冲区”。数据不再每帧重复创建,降低了DrawCalls之间的GPU设置成本。 限制条件: ????????· 对象不可以是粒子或蒙皮网格(有说现在已经支持蒙皮网格的,待验证) ????????· shader变体不一致 关于批处理的限制条件参考:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 20:18:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |