vault backup: 2024-10-08 19:50:49

This commit is contained in:
BlueRose 2024-10-08 19:50:49 +08:00
parent 4082426960
commit fffce22833

View File

@ -94,7 +94,7 @@ enum EColorWriteMask
};
```
### 混合运算
#### 混合运算
混合运算符对于颜色混合方程和Alpha混合方程效果是一样的这里就只用颜色混合方程来做讲解。
| BlendOperation | 颜色混合方程 |
@ -106,7 +106,7 @@ enum EColorWriteMask
| BO_Max | $$C = Max(C_{src} , C_{dst} )C=Max(Csrc,Cdst)$$ |
| BO_Min和BO_Max忽略了混合因子 | |
### 混合因子
#### 混合因子
| BlendFactor | 颜色混合因子 | Alpha混合因子 |
| ----------------------------- | ---------------------------------------------------------------- | ------------------------ |
@ -134,10 +134,10 @@ TStaticDepthStencilState<
bEnableDepthWrite, // 是否启用深度写入
DepthTest, // 深度测试比较函数
bEnableFrontFaceStencil, // (正面)启用模板
FrontFaceStencilTest, // (正面)模板失败操作
FrontFaceStencilTest, // (正面)模板测试操作
FrontFaceStencilFailStencilOp, //(正面)模板测试失败时如何更新模板缓冲区
FrontFaceDepthFailStencilOp, //(正面)深度测试失败时如何更新模板缓冲区
FrontFacePassStencilOp, //(正面)通过模板测试时如何更新模板红冲去
FrontFacePassStencilOp, //(正面)通过模板测试时如何更新模板缓冲区
bEnableBackFaceStencil, // (背面)启用模板
BackFaceStencilTest, // (背面)模板失败操作
BackFaceStencilFailStencilOp, //(背面)模板测试失败时如何更新模板缓冲区
@ -148,6 +148,13 @@ TStaticDepthStencilState<
>
```
```c++
//一般使用这个
TStaticDepthStencilState<true, CF_DepthNearOrEqual>::GetRHI();
//CustomStencil中使用的
TStaticDepthStencilState<true, CF_DepthNearOrEqual, true, CF_Always, SO_Keep, SO_Keep, SO_Replace, false, CF_Always, SO_Keep, SO_Keep, SO_Keep, 255, 255>::GetRHI()
```
#### DepthTest
深度测试比较函数。
```c++
@ -173,6 +180,23 @@ enum ECompareFunction
};
```
```c++
enum EStencilOp
{
SO_Keep,
SO_Zero,
SO_Replace,
SO_SaturatedIncrement,
SO_SaturatedDecrement,
SO_Invert,
SO_Increment,
SO_Decrement,
EStencilOp_Num,
EStencilOp_NumBits = 3,
};
```
### CustomStencil
#### InitCustomDepthStencilContext()
根据当前平台是否支持使用ComputeShader直接输出结果bComputeExport、以及是否写入Stencil缓存以此来创建不同的资源。最终输出FCustomDepthContext。