48 lines
1.4 KiB
HLSL
48 lines
1.4 KiB
HLSL
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
SimpleElementNormalMapPixelShader.hlsl: Pixel shader for previewing normal
|
|
map textures rendered as simple elements.
|
|
|
|
Deprecated, do not use.
|
|
|
|
Use SimpleElementTexture2DPreviewPixelShader.usf instead, with the normal map flag.
|
|
|
|
=============================================================================*/
|
|
|
|
#include "Common.ush"
|
|
|
|
#define WRITE_TO_GBUFFER (FEATURE_LEVEL >= FEATURE_LEVEL_SM4 && !FORWARD_SHADING)
|
|
|
|
Texture2D NormalMapTexture;
|
|
SamplerState NormalMapTextureSampler;
|
|
|
|
void Main(
|
|
in float2 TextureCoordinate : TEXCOORD0,
|
|
out float4 OutColor : SV_Target0
|
|
#if WRITE_TO_GBUFFER
|
|
,out float4 OutWorldNormal : SV_Target1
|
|
#endif
|
|
)
|
|
{
|
|
const float4 NormalSample = Texture2DSample(NormalMapTexture, NormalMapTextureSampler, TextureCoordinate);
|
|
const float4 Normal = UnpackNormalMap(NormalSample);
|
|
const float4 RescaledNormal = float4(Normal.xyz * 0.5 + 0.5, 1);
|
|
OutColor = RETURN_COLOR(RescaledNormal);
|
|
|
|
/*
|
|
// this shader does no gamma correction
|
|
if( Gamma != 1.0 )
|
|
{
|
|
// typically Gamma = 1.0/2.2
|
|
// then this does LinearToSrgb
|
|
OutColor.rgb = ApplyGammaCorrection(saturate(OutColor.rgb), Gamma * 2.2);
|
|
}
|
|
*/
|
|
|
|
#if WRITE_TO_GBUFFER
|
|
// Set the G buffer bits that indicate that deferred lighting and image reflections are not enabled
|
|
OutWorldNormal = 0;
|
|
#endif
|
|
}
|