2.4 KiB
2.4 KiB
title, date, excerpt, tags, rating
| title | date | excerpt | tags | rating | |||
|---|---|---|---|---|---|---|---|
| 光线追踪与PSO | 2026-05-03 00:00:00 | RT 反射小幅修改和 PSO 部分编译标记 |
|
⭐ |
光线追踪与 PSO
返回 Rendering
概述
ARC 引擎在光线追踪和 PSO(Pipeline State Object)方面的修改较少,主要是格式修复和编译优化标记。
Ray Tracing
RayTracingDeferredReflections.usf
仅缩进格式修复(去掉一级缩进),无功能性变更。
PSO 改进
部分编译标记
在 RHI 层新增 bPartial 标记用于 Ray Tracing Pipeline 的异步编译:
// RHI module
struct FRayTracingPipelineStateInitializer
{
bool bPartial; // 允许部分编译(不等待所有 Shader 就绪)
FRayTracingPipelineState* BasePipeline; // 基础 PSO,用于派生
};
SetGraphicsPipelineState 扩展
新增 bApplyAdditionalState 参数,控制是否在设置管线状态时应用额外的平台特化状态。
完整代码解析
// RayTracingDeferredReflections.usf
// 仅缩进格式修复(去掉一级缩进),无功能性变更
// 不影响运行时行为
// RHI 模块 — PSO 部分编译标记
struct FRayTracingPipelineStateInitializer
{
// ASW 新增:允许部分编译
// 不需要等待所有 Hit Shader 就绪即可使用基础管线
// 用于减少首次光线追踪渲染时的卡顿
bool bPartial;
// 基础 PSO,用于派生新的 PSO
// 派生 PSO 只需要编译差异部分
FRayTracingPipelineState* BasePipeline;
};
// SetGraphicsPipelineState 扩展
// ASW 新增 bApplyAdditionalState 参数
// 控制是否在设置管线状态时应用平台特化的额外状态
void RHISetGraphicsPipelineState(
FGraphicsPipelineStateInitializer& Initializer,
bool bApplyAdditionalState = true // <-- 新增参数
);
关联文档
- D3D12RHI — D3D12 层面的 PSO 异步创建改进
代码修改情况
| 文件路径 | 行号 | 修改类型 | 修改内容 |
|---|---|---|---|
Shaders/Private/RayTracing/RayTracingDeferredReflections.usf |
L109~L121 | 格式 | 缩进调整(无功能变更) |
Source/Runtime/RHI/ |
— | 修改 | FRayTracingPipelineStateInitializer 新增 bPartial、BasePipeline |
Source/Runtime/RHI/ |
— | 修改 | SetGraphicsPipelineState 新增 bApplyAdditionalState 参数 |