forked from aya/aya
Initial commit
This commit is contained in:
58
client/common/shaders/source/ui.hlsl
Normal file
58
client/common/shaders/source/ui.hlsl
Normal file
@@ -0,0 +1,58 @@
|
||||
#include "common.h"
|
||||
|
||||
struct Appdata
|
||||
{
|
||||
float4 Position : POSITION;
|
||||
float2 Uv : TEXCOORD0;
|
||||
float4 Color : COLOR0;
|
||||
};
|
||||
|
||||
struct VertexOutput
|
||||
{
|
||||
float4 HPosition : POSITION;
|
||||
|
||||
float2 Uv : TEXCOORD0;
|
||||
float4 Color : COLOR0;
|
||||
|
||||
#if defined(PIN_FOG)
|
||||
float FogFactor : TEXCOORD1;
|
||||
#endif
|
||||
};
|
||||
|
||||
uniform float4 UIParams; // x = luminance sampling on/off, w = z offset
|
||||
TEX_DECLARE2D(DiffuseMap, 0);
|
||||
|
||||
VertexOutput UIVS(Appdata IN)
|
||||
{
|
||||
VertexOutput OUT = (VertexOutput)0;
|
||||
|
||||
OUT.HPosition = mul(G(ViewProjection), IN.Position);
|
||||
OUT.HPosition.z -= UIParams.w; // against z-fighting
|
||||
|
||||
OUT.Uv = IN.Uv;
|
||||
OUT.Color = IN.Color;
|
||||
|
||||
#if defined(PIN_FOG)
|
||||
OUT.FogFactor = (G(FogParams).z - OUT.HPosition.w) * G(FogParams).w;
|
||||
#endif
|
||||
|
||||
return OUT;
|
||||
}
|
||||
|
||||
float4 UIPS(VertexOutput IN): COLOR0
|
||||
{
|
||||
float4 base;
|
||||
|
||||
if (UIParams.x > 0.5)
|
||||
base = float4(1, 1, 1,tex2D(DiffuseMap, IN.Uv).r);
|
||||
else
|
||||
base = tex2D(DiffuseMap, IN.Uv);
|
||||
|
||||
float4 result = IN.Color * base;
|
||||
|
||||
#if defined(PIN_FOG)
|
||||
result.rgb = lerp(G(FogColor), result.rgb, saturate(IN.FogFactor));
|
||||
#endif
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user