Files
BlueRoseNote/03-UnrealEngine/卡通渲染相关资料/渲染功能/ARC/Platform/Platform.md

4.7 KiB
Raw Blame History

title, date, excerpt, tags, rating
title date excerpt tags rating
Platform 2026-05-03 00:00:00 ARC 引擎平台支持修改PS4 PSSL 兼容层/HDR Resolve/RT Write Mask、PS5 Feature Level/GBuffer 适配、Xbox One HLSL 兼容层/Wave Intrinsics
ARC
Platform

Platform — 平台支持

返回 ARC引擎修改总览

概述

ARC 引擎为主机平台PS4、PS5、Xbox One添加了 Shader 兼容层和平台特化代码,确保卡通渲染管线在各平台上正确运行。

功能列表

功能 说明
PS4 支持 PSSL 兼容层、HDR Resolve、RT Write Mask
PS5 支持 Feature Level 定义、GBuffer 格式适配
Xbox One 支持 HLSL 兼容层、Wave Intrinsics

PS4 支持

概述

为 PS4Orbis平台提供完整的 Shader 兼容层和平台特化着色器。

PSSL 兼容层

Public/Platform/PS4/PS4Common.ush 提供 HLSL → PSSLPlayStation Shader Language的映射

  • 数据类型映射(float4 → PSSL 等效)
  • Sampler 设置(各向异性过滤、比较采样器)
  • Wave Intrinsics 映射(WaveActiveSumWaveActiveBallot 等)
  • 纹理采样函数兼容

平台特化着色器

Private/Platform/PS4/ 目录包含 6 个平台着色器:

文件 用途
HDR Resolve 高动态范围缓冲区解析
RT Write Mask Render Target 写入遮罩
Wide Custom Resolve 宽格式自定义解析

DOF 修复

PostProcessDOF.usf 中的 PS4 特化修改:

#if !MOBILE_SHADING
// PS4: ReadFullResAndDepth 函数签名调整
float4 ReadFullResAndDepth(float2 UV, float Depth)
#endif

以及 RED_CHANGE 深度 Gather 优化。

完整代码解析

// Public/Platform/PS4/PS4Common.ush — PSSL 兼容层示例
// HLSL → PSSL 数据类型和函数映射
// 例如 Wave Intrinsics:
// HLSL WaveActiveSum() → PSSL __v_add_co_u32() 等
// 以及 Sampler 设置、纹理采样兼容函数

代码修改情况

文件路径 行数 修改类型 修改内容
Shaders/Public/Platform/PS4/PS4Common.ush 688行 新增文件 PSSL 兼容层(数据类型映射/Sampler/Wave Intrinsics
Shaders/Private/Platform/PS4/HdrCustomResolveShaders.ush 127行 新增文件 HDR 自定义 Resolve 着色器
Shaders/Private/Platform/PS4/RTWriteMaskProcessing.usf 118行 新增文件 RenderTarget 写入遮罩处理
Shaders/Private/Platform/PS4/WideCustomResolveShaders.ush 124行 新增文件 宽格式自定义 Resolve
Shaders/Private/Platform/PS4/WideCustomResolve_Wide.ush 111行 新增文件 Wide 变体
Shaders/Private/Platform/PS4/WideCustomResolve_Wider.ush 130行 新增文件 Wider 变体
Shaders/Private/Platform/PS4/WideCustomResolve_Widest.ush 139行 新增文件 Widest 变体
Shaders/Private/PostProcessDOF.usf L66~L76 修改 ReadFullResAndDepth 函数签名 PS4 适配
Shaders/Private/PostProcessDOF.usf L114~L121 新增 RED_CHANGE 深度 Gather 优化

PS5 支持

概述

PS5 平台的修改相对较少,主要是 Feature Level 定义和 GBuffer 格式的平台差异处理。

Feature Level

Public/Platform.ush 中为 PS5 添加 SM5 Feature Level

#elif PS5_PROFILE
    #define FEATURE_LEVEL FEATURE_LEVEL_SM5

GBuffer 格式适配

Specular GBuffer 在 PS5 上保持标准格式,仅在非 PS5 平台降级为 PF_A8

// SceneRenderTargets.cpp
#if !PS5_PLATFORM
    SpecularGBufferFormat = PF_A8;  // 降低精度节省带宽
#endif

参见 GBuffer修改

代码修改情况

文件路径 行号 修改类型 修改内容
Shaders/Public/Platform.ush L211~L215 新增 PS5_PROFILEFEATURE_LEVEL_SM5 定义
Source/Runtime/Renderer/Private/SceneRenderTargets.cpp 修改 PS5 平台保持标准 Specular GBuffer 格式

Xbox One 支持

概述

为 Xbox One 平台提供 Shader 兼容层。

HLSL 兼容层

Public/Platform/XboxOne/XboxOneCommon.ush 提供:

  • Xbox One GPU 特有的 Wave Intrinsics 映射
  • Sampler 和纹理采样兼容
  • HLSL Shader Model 差异处理

D3D12RHI 平台代码

Source/Runtime/D3D12RHI/Private/XboxOne/ 目录(空占位),预留 Xbox One 平台的 D3D12 RHI 特化代码。

代码修改情况

文件路径 行数 修改类型 修改内容
Shaders/Public/Platform/XboxOne/XboxOneCommon.ush 324行 新增文件 Xbox One HLSL 兼容层
Source/Runtime/D3D12RHI/Private/XboxOne/ 新增目录 Xbox One D3D12 RHI 占位目录