| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- //////////////////////////////////////////////////////////////////////////////
- // ©2005 Electronic Arts Inc
- //
- // FX Shader helper for shadow map
- //////////////////////////////////////////////////////////////////////////////
- #include "Common.fxh"
- // ----------------------------------------------------------------------------
- // Transformations
- // ----------------------------------------------------------------------------
- float4x4 WorldViewProjection : WorldViewProjection;
- SAMPLER_2D_BEGIN( Sampler_PostProcess,
- string UIName = "None";
- )
- MinFilter = Point;
- MagFilter = Point;
- MipFilter = Point;
- AddressU = Clamp;
- AddressV = Clamp;
- SAMPLER_2D_END
- // ----------------------------------------------------------------------------
- // SHADER: WriteColor
- // ----------------------------------------------------------------------------
- float4 ColorToWrite = float4(0, 0, 0, 0);
- float4 VSWriteColor(float3 Position : POSITION) : POSITION
- {
- return float4(Position, 1);
- }
- // ----------------------------------------------------------------------------
- float4 PSWriteColor(void) : COLOR
- {
- return ColorToWrite;
- }
- // ----------------------------------------------------------------------------
- // SHADER: VSShadowMapPostProcess
- // ----------------------------------------------------------------------------
- struct VSOutput_ShadowMapPostProcess
- {
- float4 Position : POSITION;
- float2 TexCoord0 : TEXCOORD0;
- };
- // ----------------------------------------------------------------------------
- VSOutput_ShadowMapPostProcess VSShadowMapPostProcess(float3 Position : POSITION,
- float2 TexCoord0 : TEXCOORD0)
- {
- VSOutput_ShadowMapPostProcess Out;
- Out.Position = float4(Position, 1);
- Out.TexCoord0 = TexCoord0;
-
- return Out;
- }
- // ----------------------------------------------------------------------------
- float4 PSShadowMapPostProcess(VSOutput_ShadowMapPostProcess In) : COLOR
- {
- //return tex2D( SAMPLER(Sampler_PostProcess), In.TexCoord0).x;
-
- float4 Zero_Zero_OneOverMapSize_OneOverMapSize = float4(0, 0, 1, 1) / 1024;
-
- float surroundingCross =
- max(
- max(tex2D( SAMPLER(Sampler_PostProcess), In.TexCoord0 + Zero_Zero_OneOverMapSize_OneOverMapSize.zx).x,
- tex2D( SAMPLER(Sampler_PostProcess), In.TexCoord0 - Zero_Zero_OneOverMapSize_OneOverMapSize.zx).x),
- max(tex2D( SAMPLER(Sampler_PostProcess), In.TexCoord0 + Zero_Zero_OneOverMapSize_OneOverMapSize.yz).x,
- tex2D( SAMPLER(Sampler_PostProcess), In.TexCoord0 - Zero_Zero_OneOverMapSize_OneOverMapSize.yz).x));
- return lerp(tex2D( SAMPLER(Sampler_PostProcess), In.TexCoord0).x, surroundingCross, 0.5);
- }
- // ----------------------------------------------------------------------------
- // TECHNIQUE: WriteColor
- // ----------------------------------------------------------------------------
- technique _WriteColor
- {
- pass P0
- {
- VertexShader = compile VS_2_0 VSWriteColor();
- PixelShader = compile PS_2_0 PSWriteColor();
- ZEnable = false;
- ZWriteEnable = false;
- CullMode = None;
- AlphaBlendEnable = false;
- AlphaTestEnable = false;
- }
- }
- // ----------------------------------------------------------------------------
- // TECHNIQUE: _ShadowMapPostProcess
- // ----------------------------------------------------------------------------
- technique _ShadowMapPostProcess
- {
- pass P0
- {
- VertexShader = compile VS_2_0 VSShadowMapPostProcess();
- PixelShader = compile PS_2_0 PSShadowMapPostProcess();
- ZEnable = false;
- ZWriteEnable = false;
- CullMode = None;
- AlphaBlendEnable = false;
- AlphaTestEnable = false;
- }
- }
|