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

@@ -40,10 +40,47 @@ rating: ⭐
`MP_ScreenSpaceDepthOffset`float通过材质图控制。参见 [[自定义材质属性]]。
## 修改文件列表
## 完整代码解析
| 文件 | 修改类型 |
|------|---------|
| `Shaders/Private/BasePassVertexShader.usf` | 深度偏移逻辑 |
| `Shaders/Private/DepthOnlyVertexShader.usf` | 同上 |
| `Shaders/Private/PositionOnlyDepthVertexShader.usf` | 同上 |
### Common.ush — 深度偏移方向宏定义
```hlsl
// Common.ush — 深度偏移方向宏定义
// ASW Change : 2016/06/07 15:20:36 Takuro.K
#if USES_SCREEN_SPACE_DEPTH_OFFSET
// 根据深度缓冲方向确定偏移符号
// 反向 Z近=1远=0偏移为负 = 向远处推
// 正向 Z近=0远=1偏移为正 = 向远处推
#if HAS_INVERTED_Z_BUFFER
#define DEPTH_OFFSET_SIGN -1.0f
#else
#define DEPTH_OFFSET_SIGN 1.0f
#endif
#endif
```
### BasePassVertexShader.usf — 应用深度偏移
```hlsl
// BasePassVertexShader.usf — 应用深度偏移
// ASW Change : 2016/06/07 15:20:36 Takuro.K
#if USES_SCREEN_SPACE_DEPTH_OFFSET
{
// 从材质图获取偏移值,乘以方向符号
// 正值 = 向远处推(在屏幕上看起来更远)
// 负值 = 向近处拉
Output.Position.z += GetMaterialScreenSpaceDepthOffset(VertexParameters)
* DEPTH_OFFSET_SIGN;
}
#endif
```
## 代码修改情况
| 文件路径 | 行号 | 修改类型 | 修改内容 |
|---------|------|---------|---------|
| `Shaders/Private/Common.ush` | L1803~L1810 | 新增 | `DEPTH_OFFSET_SIGN` 宏定义(根据 Z-buffer 方向) |
| `Shaders/Private/BasePassVertexShader.usf` | L158~L163 | 新增 | `Output.Position.z += offset * DEPTH_OFFSET_SIGN` |
| `Shaders/Private/DepthOnlyVertexShader.usf` | — | 新增 | 同上深度偏移应用 |
| `Shaders/Private/PositionOnlyDepthVertexShader.usf` | L49~L59 | 新增 | 同上 |
| `Shaders/Private/MaterialTemplate.ush` | L2255~L2260 | 新增 | `GetMaterialScreenSpaceDepthOffset` 材质访问函数 |