45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
|
---
|
||
|
title: Untitled
|
||
|
date: 2024-09-26 18:41:24
|
||
|
excerpt:
|
||
|
tags:
|
||
|
rating: ⭐
|
||
|
---
|
||
|
# SetDepthStencilStateForBasePass()
|
||
|
```c++
|
||
|
void SetDepthStencilStateForBasePass(
|
||
|
FMeshPassProcessorRenderState& DrawRenderState,
|
||
|
ERHIFeatureLevel::Type FeatureLevel,
|
||
|
bool bDitheredLODTransition,
|
||
|
const FMaterial& MaterialResource,
|
||
|
bool bEnableReceiveDecalOutput,
|
||
|
bool bForceEnableStencilDitherState)
|
||
|
{
|
||
|
const bool bMaskedInEarlyPass = (MaterialResource.IsMasked() || bDitheredLODTransition) && MaskedInEarlyPass(GShaderPlatformForFeatureLevel[FeatureLevel]);
|
||
|
if (bEnableReceiveDecalOutput)
|
||
|
{
|
||
|
if (bMaskedInEarlyPass)
|
||
|
{
|
||
|
SetDepthStencilStateForBasePass_Internal<false, CF_Equal>(DrawRenderState, FeatureLevel);
|
||
|
}
|
||
|
else if (DrawRenderState.GetDepthStencilAccess() & FExclusiveDepthStencil::DepthWrite)
|
||
|
{
|
||
|
SetDepthStencilStateForBasePass_Internal<true, CF_GreaterEqual>(DrawRenderState, FeatureLevel);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SetDepthStencilStateForBasePass_Internal<false, CF_GreaterEqual>(DrawRenderState, FeatureLevel);
|
||
|
}
|
||
|
}
|
||
|
else if (bMaskedInEarlyPass)
|
||
|
{
|
||
|
DrawRenderState.SetDepthStencilState(TStaticDepthStencilState<false, CF_Equal>::GetRHI());
|
||
|
}
|
||
|
|
||
|
if (bForceEnableStencilDitherState)
|
||
|
{
|
||
|
SetDepthStencilStateForBasePass_Internal<false, CF_Equal>(DrawRenderState, FeatureLevel);
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
#
|