diff options
author | Fire-Head <Fire-Head@users.noreply.github.com> | 2021-01-12 22:11:15 +0100 |
---|---|---|
committer | Fire-Head <Fire-Head@users.noreply.github.com> | 2021-01-12 22:11:15 +0100 |
commit | 3e6016dc6ee40372a06b74d24cae2f97428358f2 (patch) | |
tree | ff2420d56a8cc4ab1b9c0f43f720e6f6fbb8bc11 /src/extras/shaders/leedsVehicle_blend_PS.hlsl | |
parent | rem gMakeResources (diff) | |
parent | Merge remote-tracking branch 'origin/miami' into lcs (diff) | |
download | re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.tar re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.tar.gz re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.tar.bz2 re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.tar.lz re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.tar.xz re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.tar.zst re3-3e6016dc6ee40372a06b74d24cae2f97428358f2.zip |
Diffstat (limited to '')
-rw-r--r-- | src/extras/shaders/leedsVehicle_blend_PS.hlsl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/extras/shaders/leedsVehicle_blend_PS.hlsl b/src/extras/shaders/leedsVehicle_blend_PS.hlsl new file mode 100644 index 00000000..e32970b2 --- /dev/null +++ b/src/extras/shaders/leedsVehicle_blend_PS.hlsl @@ -0,0 +1,33 @@ +struct VS_out { + float4 Position : POSITION; + float3 TexCoord0 : TEXCOORD0; + float2 TexCoord1 : TEXCOORD1; + float4 Color : COLOR0; +}; + +sampler2D diffTex : register(s0); +sampler2D envTex : register(s1); + +float4 fogColor : register(c0); + +float4 fxparams : register(c1); + +#define shininess (fxparams.x) + +float4 main(VS_out input) : COLOR +{ + float4 pass1 = input.Color*tex2D(diffTex, input.TexCoord0.xy); + float4 pass2 = tex2D(envTex, input.TexCoord1.xy); + pass2.a *= shininess; + + pass1.rgb = lerp(fogColor.rgb, pass1.rgb, input.TexCoord0.z); + pass2.rgb = lerp(float3(0.0, 0.0, 0.0), pass2.rgb, input.TexCoord0.z); + + // We simulate drawing this in two passes. + // We premultiply alpha so render state should be one. + float4 color; + color.rgb = pass1.rgb*pass1.a*(1.0-pass2.a) + pass2.rgb*pass2.a; + color.a = pass1.a*(1.0-pass2.a) + pass2.a; + + return color; +} |