Files
BlueRoseNote/03-UnrealEngine/卡通渲染相关资料/渲染功能/ARC/Rendering/GBuffer修改.md

66 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: GBuffer修改
date: 2026-05-03 00:00:00
excerpt: GBufferD 清除色、Specular 格式和法线 GBuffer 格式调整
tags:
- ARC
- Rendering
- GBuffer
rating: ⭐
---
# GBuffer 修改
返回 [[Rendering]]
## 概述
ARC 引擎对 GBuffer 进行了多处细节修改,主要围绕 CustomData 通道GBufferD的清除色、Specular GBuffer 格式和法线格式。
## 修改内容
### 1. GBufferD 清除色
将 GBufferD 的清除色从默认值改为 `(0, 0, 0, 0)`
```cpp
// SceneRenderTargets.cpp
// GBufferD 清除为黑色,确保 OutlineID 和 PointLight 数据的默认值为 0
ClearColor = FLinearColor(0, 0, 0, 0);
```
这确保未被写入 [[RED自定义数据通道]] 的像素不会产生错误的轮廓线 ID 或辉光遮罩。
### 2. Specular GBuffer 格式
在非 PS5 平台上Specular GBuffer 格式改为 `PF_A8`
```cpp
// 非 PS5 平台使用 8 位精度
SpecularGBufferFormat = PF_A8;
```
降低 Specular 精度以节省带宽对卡通渲染影响极小Specular 在 Toon 着色中通常使用阶梯化而非平滑过渡)。
### 3. PostProcessDownsample Alpha
`PostProcessDownsample.usf` 中强制 Alpha 为 1.0
```hlsl
OutColor.a = 1.f;
```
防止降采样过程中 Alpha 通道携带的 CustomData 信息影响后续后处理。
## 关联文档
- [[RED自定义数据通道]] — GBufferD 的数据写入方
- [[自定义后处理]] — 读取 GBufferD 数据
## 修改文件列表
| 文件 | 修改类型 |
|------|---------|
| `Source/Runtime/Renderer/Private/SceneRenderTargets.cpp` | GBufferD 清除色、Specular 格式 |
| `Shaders/Private/PostProcessDownsample.usf` | Alpha 强制为 1.0 |