Files
BlueRoseNote/03-UnrealEngine/卡通渲染相关资料/渲染功能/ARC/Rendering/光线追踪与PSO.md

2.4 KiB
Raw Blame History

title, date, excerpt, tags, rating
title date excerpt tags rating
光线追踪与PSO 2026-05-03 00:00:00 RT 反射小幅修改和 PSO 部分编译标记
ARC
Rendering
RayTracing

光线追踪与 PSO

返回 Rendering

概述

ARC 引擎在光线追踪和 PSOPipeline 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 新增 bPartialBasePipeline
Source/Runtime/RHI/ 修改 SetGraphicsPipelineState 新增 bApplyAdditionalState 参数