发布时间:2026/8/15 14:40:00
动态合批(Dynamic Batching):每帧现做的“临时打包“ 开场一个会动却也能合批的难题上一讲学了静态合批小王很开心不动的物体勾个 Static 就优化了但他遇到新问题场景里有一堆会飘动的金币、会飞的子弹、飘落的树叶…这些东西会动不能勾 Static“会动的小物体也很多啊DrawCall 又爆了怎么办”老鸟说“试试动态合批专治这种会动的小家伙” 第一幕动态合批是什么一句话定义动态合批 Unity每一帧自动把 会动的小物体临时合并减少DrawCall 关键词 - 会动的物体 ✓(静态合批做不到的) - 每一帧都重新合并 - 自动进行(基本不用你操作)和静态合批的核心区别静态合批 物体不动 → 合并一次 → 永久使用 动态合批 物体会动 → 每帧重新合并 → 帧帧现做 ↓ 因为会动位置每帧变 不能一次合并永久用 只能每帧临时合并生动比喻现做 vs 预制静态合批 预制菜(提前做好直接热) 物体不变合并一次就够 动态合批 现炒菜(每次点单现做) 物体每帧在动每帧重新合并 (因为位置一直在变) 第二幕为什么会动的要每帧合并核心原因位置一直在变还记得合并的原理吗 把顶点烘焙成世界坐标 静态物体 世界坐标固定 → 烘焙一次永久用 ✓ 动态物体 这帧在(5,0,0)下帧飞到(5,1,0) 世界坐标一直变 ↓ 上一帧烘焙的坐标这一帧就过期了 ↓ 只能每帧重新烘焙、重新合并图解每帧重合并第1帧 金币在(0,0) (1,0) (2,0) ↓ 合并烘焙这一帧的世界坐标 ↓ 画 第2帧金币飘动了 金币在(0,1) (1,1) (2,1) ↓ 位置变了重新合并烘焙 ↓ 画 第3帧又动了... ↓ 再次重新合并... 每帧都要重来一遍生动理解动态物体像活动的士兵 每帧士兵都在移动位置 ↓ 每帧都要重新点名列队(合并) ↓ 不能像静态那样焊死在阵型里⚠️ 第三幕动态合批的苛刻限制限制1顶点数量限制最重要❌ 硬性限制 每个网格的顶点属性 900 (有些说法是300顶点取决于属性数量) 为什么 每帧CPU要变换所有顶点 ↓ 顶点太多 → CPU算不过来 ↓ 反而比不合批还慢 ↓ 所以Unity限制只合并小网格顶点属性怎么算顶点属性不只是顶点数 每个顶点包含 - 位置(Position) → 算1个属性 - 法线(Normal) → 算1个属性 - UV → 算1个属性 - 切线、颜色... 如果用了位置法线UV 3个属性 ↓ 900 ÷ 3 300个顶点上限 用的属性越多能合并的顶点越少限制2必须相同材质和所有合批一样 必须用同一个材质才能合批 不同材质 → 无法合到一批限制3不能有多Pass的Shader如果Shader有多个Pass (比如某些需要多次绘制的效果) ↓ 无法动态合批限制4缩放的限制早期版本 不同缩放(non-uniform scale)会打断合批 现在放宽了但仍要注意 统一缩放的物体更容易合批限制总结表动态合批要求 ✓ 顶点属性 900(核心限制!) ✓ 相同材质 ✓ 单Pass Shader ✓ 不用多光源逐像素光照 ✓ 没有Lightmap差异️ 第四幕如何开启动态合批好消息基本是自动的动态合批默认开启自动工作 Edit → Project Settings → Player → Other Settings → ☑ Dynamic Batching (确认勾选) 满足条件的物体 Unity自动帮你动态合批 你不用写任何代码你要做的是满足条件想让动态合批生效你要 1. 让物体网格足够小(900顶点属性) 2. 让物体共用同一材质 3. 用简单的单Pass Shader ↓ 满足了Unity自动合批 不满足Unity自动放弃(不报错就是没优化)界面示意Project Settings → Player ┌──────────────────────────────┐ │ Rendering │ │ ☑ Dynamic Batching ← 确认开 │ │ ☑ Static Batching │ │ ☑ GPU Skinning │ └──────────────────────────────┘ 第五幕动态合批的底层代价CPU 的负担动态合批不是免费的 每一帧CPU要 1. 找出可以合批的物体 2. 把它们的顶点变换到世界空间 3. 合并成临时大网格 4. 提交渲染 ↓ 这些是逐帧、逐顶点的CPU计算关键权衡省DrawCall vs 花CPU动态合批的本质 省下DrawCall的开销 花掉每帧顶点变换的CPU开销 如果顶点太多 花掉的 省下的 ↓ 反而更慢 ↓ 这就是为什么限制顶点数900生动理解权衡就像帮朋友搬家 DrawCall开销 每次开车往返的时间 顶点计算 打包整理的时间 小物件多(顶点少) 打包快合并省往返 → 划算 ✓ 大件家具(顶点多) 打包比开车还累 ↓ 不如直接一件件搬(不合批)为什么静态合批没这个问题静态合批 顶点变换只做一次(加载时) 之后每帧直接用不再计算 ↓ 运行时CPU开销几乎为0 动态合批 每帧都要重新变换顶点 ↓ 运行时CPU持续开销 ↓ 这就是动态合批慎用的原因 第六幕动态合批 vs 静态合批 vs GPU Instancing三者定位对比静态合批 不动的物体一次合并省CPU费内存 动态合批 会动的小物体每帧合并费CPU省内存 GPU Instancing 大量相同物体一次画多个最省什么时候选动态合批动态合批适合 ✓ 会动的 ✓ 小网格(顶点少) ✓ 相同材质 ✓ 各不相同(不是大量重复) 如果是大量相同的会动物体 (如成百上千的相同子弹) ↓ GPU Instancing 更好决策流程物体会动吗 ├─ 不动 → 静态合批 │ └─ 会动 → 大量完全相同吗 ├─ 是 → GPU Instancing │ (子弹、粒子等) │ └─ 否 → 网格小吗(900顶点) ├─ 小 → 动态合批 ✓ └─ 大 → 都不适合 (考虑其他优化)完整对比表静态合批 动态合批 GPU Instancing ────────────────────────────────────────────────── 对象 不动物体 会动小物体 大量相同物体 合并时机 一次 每帧 不合并,一次多画 CPU开销 低 高(逐帧顶点) 低 内存开销 高 低 低 顶点限制 基本没有 900属性 无(需相同网格) 需要相同网格 否 否 是 推荐度 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐ 第七幕动态合批的常见坑坑1顶点超标悄悄失效❌ 问题 物体顶点属性超过900 ↓ 动态合批悄悄不生效 不报错你还以为优化了 ↓ DrawCall居高不下✅ 解决 - 用Frame Debugger检查是否真的合批 - 简化模型顶点 - 减少顶点属性(不用的法线/切线去掉)坑2材质实例化打断合批❌ 危险操作 代码里访问 renderer.material ↓ Unity会创建材质副本(实例) ↓ 每个物体材质不同了 ↓ 无法合批✅ 解决 只读用 renderer.sharedMaterial 不要随意访问.material创建副本坑3以为动态合批很快狂用❌ 误区 动态合批好用所有会动的都靠它 ↓ 大量物体每帧变换顶点 ↓ CPU爆炸比不合批还慢✅ 正确认知 动态合批CPU开销大 只适合少量小网格 大量物体请用GPU Instancing坑4不同缩放/多光源打断❌ 各种打断合批的因素 - 逐像素多光源照射 - 有阴影投射差异 - Lightmap不同 - 部分特殊缩放 ↓ 悄悄打断难以察觉✅ 解决 用Frame Debugger看 Why this draw call cant batch Unity会告诉你打断原因 第八幕如何验证动态合批Frame Debugger 是神器Window → Analysis → Frame Debugger 点开某个DrawCallUnity会显示 - 这批画了哪些物体 - 如果没合批告诉你原因 Objects have different materials Objects are affected by different lights Mesh has too many vertices ... ↓ 照着原因去修Stats 面板看效果Game视图 → Stats Batches: 批次数 Saved by batching: 合批省下的数 动态测试 让物体动起来 看Batches是否保持低位实战验证案例场景50个飘动的小金币 未合批 - 50个金币 50 DrawCall 满足条件后动态合批 - 金币网格小(900顶点) ✓ - 共用金币材质 ✓ - 简单Shader ✓ ↓ - Batches降到约1-2 - Saved by batching: 48 金币还在飘动但DrawCall很低✅ 动态合批检查清单条件满足 □ 物体网格够小(900顶点属性) □ 物体共用同一材质 □ 用的是单Pass简单Shader □ 没有逐像素多光源 避免打断 □ 没有误用.material创建副本 □ 缩放是否统一 □ Lightmap设置是否一致 验证效果 □ Frame Debugger确认真的合批了 □ 查看了未合批的原因提示 □ Stats的Batches降了吗 权衡考量 □ 物体数量是否过多(该用Instancing) □ CPU开销是否可接受 □ 顶点计算没成为新瓶颈 一句话总结动态合批的核心专治会动的小物体——静态合批做不到的领域。因为物体会动、位置每帧变所以Unity每一帧都重新合并它们减少DrawCall。代价是每帧CPU要变换所有顶点开销大所以严格限制顶点属性900只合并小网格。适合少量会动的小物体大量相同物体请用GPU Instancing核心口诀会动靠动态每帧重新合顶点要够小多了反而慢 三大合批技术终极决策图【你的物体是什么情况】 不动的场景物体 → 静态合批(勾Static) ⭐⭐⭐⭐⭐ 会动的少量小物体(网格900顶点) → 动态合批(自动) ⭐⭐ 大量相同的物体(草/树/子弹) → GPU Instancing ⭐⭐⭐⭐ 各种材质混杂但想统一优化 → SRP Batcher(现代管线) ⭐⭐⭐⭐⭐⚠️ 重要提醒现代 UnityURP/HDRP中动态合批的地位在下降因为SRP Batcher和GPU Instancing通常更高效。动态合批更多是内置管线(Built-in)时代的技术。 延伸为什么现代项目少用动态合批【时代变化】 内置管线时代 动态合批是重要优化手段 现代管线(URP/HDRP) - SRP Batcher 更强大(不限顶点数) - GPU Instancing 处理大量物体 ↓ 动态合批的CPU开销缺点凸显 地位下降 所以 了解原理很重要 但实际项目优先考虑 SRP Batcher GPU Instancing

相关新闻

2026/8/15 15:25:02

如何使用PESecurity快速检测EXE/DLL安全属性?5分钟上手教程

如何使用PESecurity快速检测EXE/DLL安全属性?5分钟上手教程 【免费下载链接】PESecurity PowerShell module to check if a Windows binary (EXE/DLL) has been compiled with ASLR, DEP, SafeSEH, StrongNaming, and Authenticode. 项目地址: https://gitcode.co…

2026/8/15 15:25:02

RyuSAK 入门指南:如何用 3 步完成 Ryujinx 模拟器资源管理

RyuSAK 入门指南:如何用 3 步完成 Ryujinx 模拟器资源管理 【免费下载链接】RyuSAK 项目地址: https://gitcode.com/gh_mirrors/ry/RyuSAK 你是否也遇到过这种尴尬:Ryujinx 模拟器好不容易装好了,结果缺固件打不开游戏,缺…

2026/8/15 15:25:02

超宽温 PT1000 分度表 (-200℃~850℃)

PT1000 分度表总结与实用建议 PT1000 分度表核心信息概括 PT1000 分度表是铂电阻温度传感器(PT1000)的温度-电阻值对应关系标准查询表,其核心信息可概括为以下几点: 基本原理:基于铂电阻的电阻值随温度变化而线性变化的…

2026/8/15 15:20:02

大模型记忆系统架构解析:从向量检索到图数据库的工程实践

1. 项目概述:当大模型需要“记住”用户在货拉拉这样日订单量巨大的同城货运平台,每天有海量的用户与司机在交互。想象一下,你是一位经常需要搬家或运送大件物品的用户,每次打开App,都希望系统能记住你的偏好&#xff1…

2026/8/15 9:46:30

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/15 7:22:41

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/15 0:04:00

AI 电动婴儿车智能功率 辅助控制、电源管理的完整选型方案

2026年随着 AI 技术在电动孕婴童用品中的深度渗透(如智能避障、自适应速度控制、能量回收),电动婴儿车对功率器件提出更高要求:高效率、小型化、低功耗、高可靠性。微碧半导体(VBsemi)基于 Trench 及 SGT 工…

2026/8/15 0:04:00

论文AIGC检测不达标完整教程!低门槛用5款工具逐步复检!

论文提交前自己先查一遍AI率,是2026年毕业生的常规动作。学校要求论文AI率低于30%,乃至于20%才能答辩… 很多同学发现一个尴尬的事情:同一篇论文,知网查出来AI率35%,维普查可能是48%,大雅、朱雀又是另外的数…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…