笔记22 Command Buffer 及 URP 概述

笔记22 Command Buffer 及 URP 概述

铁名_IronName Lv4

(由于陌生概念太多,而且也没个铺垫,所以需要以后再来学)

什么是 Command Buffer?

用来存储渲染命令的缓冲区。

Command Buffer 保存着渲染命令列表,如(set render target,draw mesh等等),可以设置在摄像机渲染期间的不同点执行。

由来与用途

从Opengl指令分析CommandBuffer原理

代码例子

(我看不懂啊😨,OpenGL得学啊)
对BRDF的镜面高光IBL项进行一个预积分渲染去得到一个512的 LUT(Look up texture),存储每个粗糙度和入射角的组合结果。去计算出菲涅尔的系数项也是R通道,和偏移项G通道,用于计算这些光的镜面高光项。然后在正式渲染的时候就需要去绑定刚刚预积分渲染的texture了。
整个生产流程:

  • 给每个小球设置好MVP矩阵
  • 然后渲染Skybox,如此循环

在OpenGL中,渲染过程中,出于渲染流程的需要,会频繁绑定VAO,VBO,FBO等。这样重复性的操作,很是让人感觉比较麻烦,也不利于程序的扩展。
因此,在写OpenGL的时候,也会根据实际需要,将一些重复性的操作”提取”出来:

  • 使用 Shader 类负责编译,在 Model 类添加一些读取模型,绑定 VAO,VBO 操作函数等等。把渲染流程分为一个一个 Pass 进行编写,更加容易辨识在每个渲染流程中应该做什么,计算出什么结果。

出于跨平台的需要,Unity对这些底层的API也做了一层封装处理,然后就产生了 Command Buffer。
在Unity的FrameDebugger中,可以看到场景的渲染流程。

  • 对应ForwardRenderer.css脚本中的
    MainLightShadowCasterPass
    m_MainLightShadowCasterPass
    DepthOnlyPass m_DepthPrepass
    ColorGradingLutPass m_ColorGradingLutPass
    DrawObjectsPass
    m_RenderOpaqueForwardPass
    DrawSkyboxPass m_DrawSkyboxPass
    CopyColorPass m_CopyColorPass
    PostProcessPass m_PostProcessPass
    PostProcessPass m_FinalPostProcessPass
    (这啥?)
  • 为了更好扩展unity的渲染管线,Unity提供了CommandBuffer,让你根据自己的需求,在不同的渲染阶段插入绘制指令,例如插入DrawRenderer,DrawMesh,DrawProcedure,绘制的时候也可以根据需要设置绘制时材质(Material)的MaterialPropertyBlock更改当前绘制的材质的属性。
  • 这里我用了RenderFeature在BeforeRenderingOpaques的时候用DrawMesh指令渲染了一个Box。
  • MaterialPropertyBlock比直接修改Material的优势是:不会创建出新的材质实例。

从自定义RenderPipeline分析

相信接触过SRP的编写的同学都看过 CatlikeCoding (我没接触过啊…贴个文章:Custom SRP)
本节就先从最简单的自定义RenderPipeline开始分析如何构造一个ScriptableRenderPipeline。然后再分析Pass的概念以及CommandBuffer和ScriptableRenderContext之间的关系。
(略,以后补)

常用函数

综合分析其使用方法

URP

RenderFeature与CommandBuffer原理分析

Volume组件

注意事项

Scene窗口CameraColorTexture丢失[MSAA导致的bugResolveAA]

DepthBuffer和StencilBuffer[16bit和24/32bit]

RT精度格式问题

加速优化

-作业-

【综合】 完成洛基中的传送门效果

1.展开动画
2.背景模糊
3.进入后渐变消失
4.边缘模糊轮廓

  • 标题: 笔记22 Command Buffer 及 URP 概述
  • 作者: 铁名_IronName
  • 创建于 : 2026-04-05 14:28:13
  • 更新于 : 2026-04-05 18:36:13
  • 链接: https://blog.ironname.top/2026/笔记22-技术美术百人计划/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论