mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-04-19 22:08:34 -04:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using NativeEngine;
|
|
|
|
namespace Sandbox.Rendering;
|
|
|
|
internal class DepthNormalPrepassLayer : RenderLayer
|
|
{
|
|
public DepthNormalPrepassLayer( bool large )
|
|
{
|
|
Name = $"Depth Normal Prepass {(large ? "Big" : "Small")}";
|
|
LayerType = SceneLayerType.DepthPrepass;
|
|
Flags |= LayerFlags.NeverRemove;
|
|
ShaderMode = "Depth";
|
|
|
|
if ( large )
|
|
{
|
|
Flags |= LayerFlags.DiscardColorBuffers;
|
|
ClearFlags = ClearFlags.Color;
|
|
|
|
// With fewer, larger objects we favor GPU perf over CPU perf by using fullsort
|
|
Flags |= LayerFlags.NeedsFullSort;
|
|
}
|
|
|
|
ObjectFlagsRequired = SceneObjectFlags.IsOpaque;
|
|
ObjectFlagsExcluded = SceneObjectFlags.IsLight | SceneObjectFlags.ExcludeGameLayer | SceneObjectFlags.NoZPrepass;
|
|
|
|
// Discard pixels conservatively, our depth prepass shader doesn't do the fancy a2c smoothing math. ( But shadows do, so don't remove me! )
|
|
Attributes.SetCombo( "D_ALPHA_TEST_CONSERVATIVE", 1 );
|
|
}
|
|
|
|
public void Setup( ISceneView view, RenderTarget gbufferColor, SceneViewRenderTargetHandle rtDepth )
|
|
{
|
|
ColorAttachment = gbufferColor.ToColorHandle( view );
|
|
DepthAttachment = rtDepth;
|
|
}
|
|
}
|