/////////////////////////////////////////////////////////////////////////////// // // ## ###### // ###### ### // ## ############### Shark 3D Engine (www.shark3d.com) // ########## # # # // ######## Copyright (c) 1996-2006 Spinor GmbH. // ######### # # # All rights reserved. // ## ########## // ## // /////////////////////////////////////////////////////////////////////////////// #include \ /////////////////////////////////////////////////////////////////////////////// struct PS_INPUT { float4 lightProjCoord: TEXCOORD0; float4 lightShmapCoord: TEXCOORD1; }; /////////////////////////////////////////////////////////////////////////////// const float4 lightIntens; const float4 lightShmapSize; const float4 lightShmapRcpSize; sampler lightProjSamp: register(s0); sampler lightShmapSamp: register(s1); /////////////////////////////////////////////////////////////////////////////// // Pixelshader // Profile: 2x0 float4 main(PS_INPUT input): COLOR0 { float3 clipVal = input.lightShmapCoord.www - abs(2 * input.lightShmapCoord.xyz - input.lightShmapCoord.www); clip(clipVal.xyz); float4 outCol = lightIntens; float4 texColProjTex = tex2Dproj(lightProjSamp, input.lightProjCoord); float bright = s3d_shmapFilter(lightShmapSamp, input.lightShmapCoord, lightShmapSize, lightShmapRcpSize); outCol *= texColProjTex * bright; return outCol; } ///////////////////////////////////////////////////////////////////////////////