Unity减少Draw和SetPassCall的手段简述
主要是四种众所周知的优化手段的简单总结1.静态批处理此术语的详情在静态批处理即静态批处理的顶点的转换不会在CPU上进行且静态批处理是先将网格合并再转换到世界空间并为它们构建一个共享的顶点和索引缓冲区- 兼容性- 需要满足的条件对第一个红框做说明比如这里有一堆静态的树那么变换只对所有树生效且相同时才会不破坏批处理如果只是修改单棵树的变化那么会破坏批处理- 开启方式非运行时状态开启-运行时状态设置- 副作用即使用静态批处理会增大内存消耗2. 动态批处理此术语的详情在动态批处理- 兼容性即高清渲染管线不支持HDRP- 设置方式- 限制- 非动态生成Mesh的动态批处理处理方式为将所有顶点转换到世界空间这里与静态批处理不同消耗主要是在CPU上并且这里还指明了一点即对于阴影投射器物体本身的材质可以不同但阴影依旧可以批量处理- 动态生成Mesh的动态批处理粒子系统Line RendererTrail Renderer这三个renderer会动态生成Mesh3. GPU Instancing此术语的详情在GPU Instancing在这里有个特殊的点即“每个实例可以有不同的属性比如颜色或比例”解释如下注意根据官方文档Graphics.DrawMeshInstanced方法已经过时需要使用 Graphics.RenderMeshInstanced 替代注意此API一次最多渲染1023个实例- 兼容性这里的注意点是GPU Instancing和SRP Batcher不兼容SRP Batcher的优先级会高于GPU Instancing这里也指出了当你实在想用GPU Instancing而不是SRP Batcher时可以直接用Graphics.RenderMeshInstanced- 限制这里需要注意的是当调用 Graphics.RenderMeshInstanced 或 Graphics.RenderMeshIndirect时每一个调用方法都会是一个单独的DrawCall并且Unity不会合并- 开启方式还有就是可以用Graphics.RenderMeshInstanced之类的方法- 光照方面- 性能影响即顶点数量少于256的网格不要使用GPU Instancing4. Scriptable Render Pipeline Batcher (SRP Batcher)此术语的详情在SRP Batcher即SRP Batcher不减少DrawCall数量只是减少准备DrawCall所需的时间加快每一次DrawCall的提交速度- 兼容性- 使用方式在URP中在HDRP中- 工作原理即SRP Batcher的最核心原理就是缓存区将渲染状态数据存储在GPU的缓存区中从而加快了渲染速度且Shader变体需要相同才能被批处理- 如何使SRP Batcher不兼容这里的着色器图着色器指Shader Graph5. 四种方式对比总结- 原理类型核心原理数据流与执行时机静态批处理预处理合并网格在构建时或运行时启动阶段将多个静态物体的网格永久合并成一个大网格顶点坐标变换到世界空间构建时收集物体 → 合并网格 → 存储为资产运行时一次DrawCall动态批处理实时合并小网格每帧在CPU端将多个满足严格条件的小型动态物体的顶点数据实时计算并合并到临时缓冲区提交一次绘制每帧收集候选 → 检查条件 → 计算世界坐标 → 合并顶点 → 绘制 → 丢弃临时数据GPU InstancingGPU并行绘制相同网格CPU将每个实例的变换矩阵/属性打包成数组一次性发送给GPUGPU在顶点着色器中根据实例ID并行处理所有实例每帧CPU构建实例数据数组 → GPU常量缓冲区 → 一次DrawCall 内部可能分批次SRP Batcher持久化材质状态 快速切换对象数据将材质的Shader属性存储在GPU的持久缓冲区中每帧仅上传每个对象的变换矩阵到循环缓冲区绘制时通过对象ID快速索引初始化时材质数据上传GPU并常驻每帧对象变换矩阵 → 循环缓冲区 → 多次DrawCall 但每次仅设置对象偏移- 限制- 静态批处理这里相同材质指的是同一个本地材质文件即Renderer.sharedMaterial要相同- 动态批处理这里的材质实例相同其实也是指的同一个本地材质文件即不能同一个材质的多个副本- GPU Instancing- SRP Batcher- 是否都减少DrawCall和SetPassCall- 优缺点- 静态批处理- 动态批处理- GPU Instancing- SRP Batcher- 综合对比- 开启方式- 静态批处理- 动态批处理- GPU Instancing- SRP Batcher- 技术选型- 优先级

相关新闻

Claude Code图标显示异常解决方法:从Cascadia Code字体到chcp编码的完整排查

Claude Code图标显示异常解决方法:从Cascadia Code字体到chcp编码的完整排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 23:53:43 阅读更多 →
2025虚拟化建设方案:平台选型、容量规划与集群搭建指南

2025虚拟化建设方案:平台选型、容量规划与集群搭建指南

简介:2025年虚拟化建设方案规划文档,面向消防总队等政企单位信息化部门、IT架构师及系统集成人员,解决计算存储资源池规划部署及业务系统平稳高效运行的问题。文档从项目需求分析切入,明确一体化建设、统一规划原则,给…

2026/10/18 23:53:42 阅读更多 →
Flutter跨平台开发实战:环境搭建、Widget设计与真机发布避坑指南

Flutter跨平台开发实战:环境搭建、Widget设计与真机发布避坑指南

简介:本资源是一份面向Flutter初学者与转岗开发者的系统性入门指南,聚焦跨平台移动应用开发核心能力培养,帮助零基础或有编程经验但未接触过Dart/Flutter的开发者快速掌握环境搭建、语言基础、UI组件构建、布局控制及状态管理等关键技能&…

2026/10/18 23:53:42 阅读更多 →

最新新闻

开源代码审查新范式:CLI驱动的Git Diff+LLM协作框架

开源代码审查新范式:CLI驱动的Git Diff+LLM协作框架

1. 这不是又一个“AI代码审查工具”,而是一套可落地的开源协作新范式“open-code-review”这四个字乍看像某个GitHub仓库名,但背后藏着的是当前工程团队在AI时代最真实、最迫切的一次工作流重构。它既不是单纯调用某个大模型API的玩具脚本,也…

2026/10/19 3:38:14 阅读更多 →
开源代码审查CLI工具:基于Git与本地LLM的自动化Code Review实践

开源代码审查CLI工具:基于Git与本地LLM的自动化Code Review实践

1. 项目概述:一个真正能落地的开源代码审查 CLI 工具“open-code-review”这个名字乍一听像某个 GitHub 上刚起步的玩具项目,但如果你最近在团队里反复被问“能不能自动扫出这段 Go 代码里潜在的空指针风险?”、“这个 Python 提交有没有漏掉…

2026/10/19 3:38:14 阅读更多 →
DGX Spark部署ComfyUI完整指南:环境配置、GPU加速与模型优化

DGX Spark部署ComfyUI完整指南:环境配置、GPU加速与模型优化

最近拿到一台 DGX Spark,第一件事就是装 ComfyUI。原本以为这种整合度很高的 AI 小工作站,装开源工具时应该很省事,实际折腾下来发现,容易走弯路的地方不在硬件跑不起来,而在软件栈没对齐。这篇记录我把 ComfyUI 从空机…

2026/10/19 3:38:14 阅读更多 →
无数据知识蒸馏新突破:对比模型反演提升合成样本多样性

无数据知识蒸馏新突破:对比模型反演提升合成样本多样性

1. 无数据蒸馏场景下的核心矛盾拆解1.1 为什么“没有数据”还能做知识蒸馏知识蒸馏这个概念,做过模型压缩的人都不陌生:拿一个已经训练好的大模型(教师模型)去教一个小模型(学生模型),让小模型在…

2026/10/19 3:38:14 阅读更多 →
开源可审计的 CLI 代码审查工作流:LLM+Git 深度集成实践

开源可审计的 CLI 代码审查工作流:LLM+Git 深度集成实践

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码审查工作流open-code-review 这个名字乍看像某个具体软件,但实际它代表的是一种正在快速演进的工程实践范式——用开源、透明、可审计的方式,把大语言模型(LL…

2026/10/19 3:38:14 阅读更多 →
轻量级本地化代码审查工具:CLI+Git Hook驱动的LLM协作者

轻量级本地化代码审查工具:CLI+Git Hook驱动的LLM协作者

1. 项目概述:这不是又一个“AI写代码”玩具,而是一套嵌入开发流程的轻量级代码审查协作者“open-code-review”这个名字乍一听像某个开源项目仓库名,但拆开来看——open(开放)、code(代码)、rev…

2026/10/19 3:37:13 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →