Unity | HDRP高清渲染管线学习笔记:HDRP Custom Pass

目录

一、Custom Pass Volume组件介绍

1.Mode(模式)

2.Injection Point(注入点)

3.Priority

4.Fade Radius

5.custom passes

二、查看Custom Pass的渲染阶段


        Custom Pass允许你执行以下操作(官方文档):

  • 更改场景中材质的外观。
  • 更改 Unity 渲染游戏对象的顺序。
  • 允许 Unity 将摄像机缓冲区读取到着色器。

        在 HDRP 渲染循环期间,Unity 使用注入点在某个特定点执行自定义通道。可通过更改注入点来控制自定义通道如何影响场景的外观。

        Custom Pass也是用Volume框架对各项设置进行管理的。但Custom Pass的Volume框架和之前详细描述过的Volume框架有以下区别:

扫描二维码关注公众号,回复: 15696053 查看本文章
  • 无法对Custom Pass像对普通Volume一样进行混合。如果有多个重叠的Custom Pass,拥有最小Bounding Volume的Custom Pass Volume会被执行,其他Custom Pass则会被忽略。
  • Custom Pass的数据不像普通Volume那样被保存在HDRP配置文件中,而是被保存在当前Custom Pass Volume的GameObject中。

一、Custom Pass Volume组件介绍

1.Mode(模式)

        可以在Custom Pass Volume中选择两种模式:Global或者Local。这两种模式与普通Volume中两种模式的使用方法基本相同。在Global(全局)模式下Custom Pass影响整个场景。在Local(本地)模式下我们需要额外添加一个碰撞体用于碰撞测试,只有当场景中的相机与带碰撞体的Custom Pass Volume物体发生碰撞时,Custom Pass才会影响整个场景。

2.Injection Point(注入点)

        可以选择一个注入点以执行Custom Pass上的逻辑。选项中的6个注入点按照从上到下的顺序执行。在每一个点我们可以读写某些缓冲(buffer)数据,我们也知道每一个注入点开始执行Custom Pass逻辑之前已经渲染好了什么物体。

3.Priority

        如果为同一注入点分配了多个 Custom Pass Volume,可使用此属性来控制 Unity 执行它们的顺序。Unity 按优先级顺序(从 0 开始)执行这些Volume。

4.Fade Radius

        Local模式下多了一个Fade Radius选项,默认数值为0,单位为m。

  • 如果设置为0,就意味着只要相机一离开Custom Pass Volume关联的Box Collider,Custom Pass就会失效。
  • 如果设置为大于0,比如3m,那么相机离开Box Collider大于3m时,Custom Pass才会失效。

5.custom passes

  • FullScreen Custom Pass:用于执行由 Unity 应用于摄像机视图或存储在自定义通道缓冲区中的效果。
  • DrawRenderers Custom Pass:用于将自定义通道应用于摄像机视图中的游戏对象。
    • Filters(过滤器):在此处设置条件,选择需要替换材质的物体。
      • Layer Mask:用于选择场景中物体所在的Layer。
      • Queue:通过这里的标签选择我们需要影响的材质。如:不透明材质选择All Opaque。
    • Overrides:在此选择用于重写的材质信息。
      • Material:关联一个材质用于替换通过Filters条件找到的材质。
      • Pass Name:因为所有的不透明(Opaque)物体都是在Forward pass中被渲染,所以我们在此选择Forward(注:如果在HDRP配置文件中设置了Deferred模式,则要选择Both以支持Forward模式)。
      • Override Depth(重写深度):如果要渲染只通过Custom Pass渲染的物体,那么要打开这个选项并选择Less Equal,这样不透明物体的信息才能被写入深度缓冲中,然后被正确渲染。
  • ObjectID Custom Pass:将由ObjectID控制的唯一颜色应用于场景中的GameObjects。

二、查看Custom Pass的渲染阶段

        通过菜单Window→Analysis→Frame Debugger打开Frame Debugger窗口,我们可以在Frame Debugger窗口查看渲染每一帧画面的整个过程。打开Frame Debugger窗口以后,可以通过左上角的Enable按钮启用它。

猜你喜欢

转载自blog.csdn.net/weixin_39766005/article/details/131457444