Files
UnrealEngine/Engine/Shaders/Private/VariableRateShading/VRSShadingRateCommon.ush
2025-05-18 13:04:45 +08:00

52 lines
1.2 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
// Taken from d3d12.h
#define D3D12_SHADING_RATE_1X1 0x0
#define D3D12_SHADING_RATE_1X2 0x1
#define D3D12_SHADING_RATE_2X1 0x4
#define D3D12_SHADING_RATE_2X2 0x5
#define D3D12_SHADING_RATE_2X4 0x6
#define D3D12_SHADING_RATE_4X2 0x9
#define D3D12_SHADING_RATE_4X4 0xa
#define MAX_D3D12_SHADING_RATE_BITS 4
#define CONSERVATIVE_SHADING_RATE_SHIFT MAX_D3D12_SHADING_RATE_BITS
float4 VisualizeShadingRate(uint ShadingRate)
{
float4 RateColor = float4(1.0, 0.0, 0.0, 0); // Red (1x1 shading rate)
if (ShadingRate > 0)
{
if (ShadingRate == D3D12_SHADING_RATE_1X2)
{
RateColor = float4(1.0, 0.5, 0.0, 0); // Orange
}
else if (ShadingRate == D3D12_SHADING_RATE_2X1)
{
RateColor = float4(1.0, 1.0, 0.0, 0); // Yellow
}
else if (ShadingRate == D3D12_SHADING_RATE_2X2)
{
RateColor = float4(0.0, 1.0, 0.0, 0); // Green
}
else if (ShadingRate == D3D12_SHADING_RATE_2X4)
{
RateColor = float4(0.0, 0.0, 1.0, 0); // Blue
}
else if (ShadingRate == D3D12_SHADING_RATE_4X2)
{
RateColor = float4(1.0, 0.0, 1.0, 0); // Purple
}
else if (ShadingRate == D3D12_SHADING_RATE_4X4)
{
RateColor = float4(1.0, 0.5, 0.8, 0); // Pink
}
}
RateColor.a = 0.5f;
return RateColor;
}