Align URP pass queue authoring with per-camera data
This commit is contained in:
@@ -243,8 +243,9 @@ package。
|
||||
- `ScriptableRendererData` 的 runtime state version 不只来自 feature collection。`UniversalRendererData`
|
||||
已把 `mainScene`、`shadowCaster` 和 `depthPrepass` block settings 纳入 hash;这些 settings 改变时必须
|
||||
触发 renderer cache 释放和 pass queue/stage manifest 重建。
|
||||
- `ScriptableRenderer` 按 stage 构建 `m_activePassQueue`。它依次调用 feature `SetupRenderPasses`、feature
|
||||
`AddRenderPasses`,再调用 renderer-owned `AddRenderPasses`;passes 按 `RenderPassEvent` 顺序插入,并归组到
|
||||
- `ScriptableRenderer` 按 per-camera pass queue 构建 `m_activePassQueue`。它依次调用 feature
|
||||
`SetupRenderPasses`、feature `AddRenderPasses`,再调用 renderer-owned `AddRenderPasses`;这些声明入口接收
|
||||
`RendererPassQueueData`,不暴露 `RenderingData.stage`;passes 按 `RenderPassEvent` 顺序插入,并归组到
|
||||
`RendererBlocks`。
|
||||
- URP stage planning 以 `ScriptableRenderer` 的 active pass queue 为最终事实源。`ConfigureCameraFramePlan`
|
||||
仍是兼容和高级策略 hook,但它不能单独声明 shadow、depth、post 或 final-output stage;没有被 pass queue
|
||||
@@ -263,7 +264,8 @@ package。
|
||||
pass 状态的边界;新增 mutable pass state 时必须确认它能被 frame-plan snapshot 捕获,避免后续 camera
|
||||
planning 改写前一个 camera 的 recording。
|
||||
- URP features 的 `AddRenderPasses` 是 per-camera 声明点,不是 per-stage 回调。不要通过
|
||||
`RenderingData.stage` 分阶段重复 enqueue;pass 所属 stage 应由 `RenderPassEvent -> RendererBlock`
|
||||
stage 数据分阶段重复 enqueue;`AddRenderPasses`/`SetupRenderPasses` 必须使用 `RendererPassQueueData`,
|
||||
而不是 recording 阶段的 `RenderingData`。pass 所属 stage 应由 `RenderPassEvent -> RendererBlock`
|
||||
映射决定,renderer recording 再按 block range 消费同一份 queue。
|
||||
- `RendererBlock` 将 pass events 映射到 camera stages:shadow caster、depth prepass、main opaque、main
|
||||
skybox、main transparent、post process 和 final output。
|
||||
@@ -411,6 +413,9 @@ Scene data 每个 camera frame 提取一次,然后由 pipeline 调整。
|
||||
fullscreen stage planner。
|
||||
- `ScriptableRenderPass.CreateFramePlanSnapshot` 已接入 `RendererFramePlan` 生成路径。多 camera planning 会冻结
|
||||
每个 camera 当时的 pass 状态,后续 camera 对复用 pass 实例的 `Configure` 不应污染已生成的 frame plan。
|
||||
- `AddRenderPasses`/`SetupRenderPasses` 已从 recording `RenderingData` 分离到 `RendererPassQueueData`。
|
||||
`RendererPassQueueData` 是 per-camera queue 声明数据,故意不携带 stage;stage 信息只应在 pass recording
|
||||
阶段通过 `RenderingData`/`ScriptableRenderContext` 消费。
|
||||
- URP runtime-state invalidation 已覆盖 asset-level shadow/final-color settings 和 renderer-data-level
|
||||
main-scene/shadow-caster/depth-prepass block settings。配置变更会通过 runtime resource version 释放
|
||||
renderer caches,并让后续 planning 重新生成 `RendererFramePlan` 和 stage manifest。
|
||||
|
||||
Reference in New Issue
Block a user