vault backup: 2026-05-03 21:38:46

This commit is contained in:
2026-05-03 21:38:46 +08:00
parent 83502d0874
commit 0a81d4ee33
34 changed files with 2442 additions and 845 deletions

View File

@@ -52,14 +52,53 @@ OutColor.a = 1.f;
防止降采样过程中 Alpha 通道携带的 CustomData 信息影响后续后处理。
## 完整代码解析
### PostProcessDownsample Alpha 修复
```hlsl
// PostProcessDownsample.usf
// 强制 Alpha 为 1.0,防止 CustomData 中的 OutlineID 信息
// 在降采样过程中泄漏到后续后处理 Pass
OutColor.rgb = max(float3(0,0,0), OutColor.rgb);
OutColor.a = 1.f; // <-- ASW 新增
```
### C++ 端实现
```cpp
// SceneRenderTargets.cpp — GBufferD 清除色修改
// ASW Change : 2016/11/09 Takuro.K
// 将 GBufferD 清除色改为 (0,0,0,0)
// 确保未写入 CustomData 的像素 OutlineID=0、PointLight DiffuseColor=黑色
FPooledRenderTargetDesc Desc(FPooledRenderTargetDesc::Create2DDesc(
BufferSize, BufferFormat,
FClearValueBinding(FLinearColor(0, 0, 0, 0)), // <-- 清除色改为全0
TexCreate_SRGB,
TexCreate_RenderTargetable | TexCreate_ShaderResource, false));
```
```cpp
// SceneRenderTargets.cpp — Specular GBuffer 格式
// ASW Change : 2017/11/21 Takuro.K
// 非 PS5 平台降低 Specular 精度到 PF_A88位
// 卡通渲染中 Specular 通常阶梯化,不需要高精度
#if defined(PLATFORM_PS5) && !PLATFORM_PS5
const EPixelFormat SpecularGBufferFormat = PF_A8;
#endif
```
## 关联文档
- [[RED自定义数据通道]] — GBufferD 的数据写入方
- [[自定义后处理]] — 读取 GBufferD 数据
## 修改文件列表
## 代码修改情况
| 文件 | 修改类型 |
|------|---------|
| `Source/Runtime/Renderer/Private/SceneRenderTargets.cpp` | GBufferD 清除色、Specular 格式 |
| `Shaders/Private/PostProcessDownsample.usf` | Alpha 强制为 1.0 |
| 文件路径 | 行号 | 修改类型 | 修改内容 |
|---------|------|---------|---------|
| `Source/Runtime/Renderer/Private/PostProcess/SceneRenderTargets.cpp` | L737 | 修改 | Normal GBuffer 格式(已禁用) |
| `Source/Runtime/Renderer/Private/PostProcess/SceneRenderTargets.cpp` | L1257~L1268 | 修改 | Specular GBuffer → `PF_A8`非PS5 |
| `Source/Runtime/Renderer/Private/PostProcess/SceneRenderTargets.cpp` | L1271~L1284 | 修改 | GBufferD 清除色 → `(0,0,0,0)` |
| `Source/Runtime/Renderer/Private/PostProcess/SceneRenderTargets.cpp` | L1364~L1380 | 修改 | GBuffer 格式相关调整 |
| `Shaders/Private/PostProcessDownsample.usf` | L63 | 新增 | `OutColor.a = 1.f` 强制 Alpha 为 1 |