vault backup: 2026-05-03 20:37:58
This commit is contained in:
86
03-UnrealEngine/卡通渲染相关资料/渲染功能/ARC/Rendering/BasePass修改.md
Normal file
86
03-UnrealEngine/卡通渲染相关资料/渲染功能/ARC/Rendering/BasePass修改.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: BasePass修改
|
||||
date: 2026-05-03 00:00:00
|
||||
excerpt: 强制 PrePass、阴影 Only 材质、X2Multiply 雾效等 BasePass 层面修改
|
||||
tags:
|
||||
- ARC
|
||||
- Rendering
|
||||
- BasePass
|
||||
rating: ⭐
|
||||
---
|
||||
|
||||
# BasePass 修改
|
||||
|
||||
返回 [[Rendering]]
|
||||
|
||||
## 概述
|
||||
|
||||
ARC 引擎在 BasePass 层面做了多项针对性修改,包括强制 Early-Z 预通道、阴影专用材质和自定义混合模式的雾效处理。
|
||||
|
||||
## 1. 阴影专用材质(RED_MASKED_SHADOW_ONLY)
|
||||
|
||||
让材质只产生阴影投射而不渲染可见像素:
|
||||
|
||||
```hlsl
|
||||
#if RED_MASKED_SHADOW_ONLY
|
||||
clip(-1); // 直接丢弃像素
|
||||
#endif
|
||||
```
|
||||
|
||||
用于格斗游戏中只需要地面阴影但不需要渲染实体的辅助网格。
|
||||
|
||||
## 2. 强制 Early-Z(EARLY_Z_PASS_FORCED)
|
||||
|
||||
由 [[自定义材质属性]] 中的 `bForcedPrepass` 控制,强制特定材质走 Early-Z PrePass:
|
||||
|
||||
```cpp
|
||||
// BasePassRendering.cpp
|
||||
if (Material.bForcedPrepass)
|
||||
{
|
||||
// 强制深度 Pass,提前剔除被遮挡像素
|
||||
// 减少 OverDraw 对卡通渲染管线的性能影响
|
||||
}
|
||||
```
|
||||
|
||||
标记来源:ASW / Wizcorp (2022)。
|
||||
|
||||
## 3. X2Multiply 雾效
|
||||
|
||||
为 `BLEND_X2Multiply` 混合模式提供正确的雾效混合:
|
||||
|
||||
```hlsl
|
||||
#elif MATERIALBLENDING_X2MULTIPLY
|
||||
// X2Multiply 的中性色是 0.5(不是 0 或 1)
|
||||
half3 FoggedColor = lerp(
|
||||
float3(0.5, 0.5, 0.5),
|
||||
Color,
|
||||
Fogging.aaa * Fogging.aaa);
|
||||
Out.MRT[0] = half4(FoggedColor, Opacity);
|
||||
```
|
||||
|
||||
标准 Multiply 中性色为 1.0,X2Multiply 中性色为 0.5。
|
||||
|
||||
## 4. PixelDepthOffset 修复
|
||||
|
||||
修复 PC 平台 PixelDepthOffset 的噪声问题:
|
||||
|
||||
```hlsl
|
||||
// MaterialTemplate.ush
|
||||
DeviceDepth = lerp(
|
||||
DeviceDepth,
|
||||
MaterialParameters.SvPosition.z,
|
||||
step(PixelDepthOffset, 0)); // PDO <= 0 时使用原始深度
|
||||
```
|
||||
|
||||
## 关联文档
|
||||
|
||||
- [[自定义材质属性]] — `bForcedPrepass` 和 `BLEND_X2Multiply`
|
||||
- [[RED自定义数据通道]] — BasePass 中 CustomData 的写入
|
||||
|
||||
## 修改文件列表
|
||||
|
||||
| 文件 | 修改类型 |
|
||||
|------|---------|
|
||||
| `Shaders/Private/BasePassPixelShader.usf` | 阴影 Only、X2Multiply 雾效 |
|
||||
| `Source/Runtime/Renderer/Private/BasePassRendering.cpp` | 强制 PrePass、X2Multiply BlendState |
|
||||
| `Shaders/Private/MaterialTemplate.ush` | PDO 修复 |
|
||||
Reference in New Issue
Block a user