Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef USE_SHADOWMAP
- static const float shadowNormalOffset = 0.1;
- static const float shadowMapEpsilon = 0.0001;
- #ifdef USE_SHADOWMAP_NOISE
- #define USE_SHADOWMAP_NOISEN
- #else
- #undef USE_SHADOWMAP_NOISEN
- #endif
- #ifdef USE_SHADOWMAP_PCF
- #define USE_SHADOWMAP_PCFN
- #else
- #undef USE_SHADOWMAP_PCFN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE
- #define USE_SHADOWMAP_VARIANCEN
- #else
- #undef USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_CSM
- #define USE_SHADOWMAP_CSMN
- #else
- #undef USE_SHADOWMAP_CSMN
- #endif
- #ifdef USE_SHADOWMAP_CSM_INSTANCED
- #define USE_SHADOWMAP_CSM_INSTANCEDN
- #else
- #undef USE_SHADOWMAP_CSM_INSTANCEDN
- #endif
- #ifdef USE_SHADOWMAP_DYNLM
- #define USE_SHADOWMAP_DYNLMN
- #else
- #undef USE_SHADOWMAP_DYNLMN
- #endif
- #ifdef USE_SHADOWMAP_STLM
- #define USE_SHADOWMAP_STLMN
- #else
- #undef USE_SHADOWMAP_STLMN
- #endif
- #ifdef USE_SHADOWMAP_NODEPTH
- #define USE_SHADOWMAP_NODEPTHN
- #else
- #undef USE_SHADOWMAP_NODEPTHN
- #endif
- #ifdef USE_SHADOWMAP_CLAMP
- #define USE_SHADOWMAP_CLAMPN
- #else
- #undef USE_SHADOWMAP_CLAMPN
- #endif
- #define ShadowMapN ShadowMap
- #define shadowmapN shadowmap
- #define getShadowMapN getShadowMap1
- #define ShadowMapViewProjN ShadowMapViewProj
- #define getPCFN getPCF
- #define getVarianceN getVariance
- #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon
- #define shadowMapFilterSizeN shadowMapFilterSize
- #include "shadow_add2.fx"
- #ifdef USE_SHADOWMAP2
- #ifdef USE_SHADOWMAP_NOISE2
- #define USE_SHADOWMAP_NOISEN
- #else
- #undef USE_SHADOWMAP_NOISEN
- #endif
- #ifdef USE_SHADOWMAP_PCF2
- #define USE_SHADOWMAP_PCFN
- #else
- #undef USE_SHADOWMAP_PCFN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE2
- #define USE_SHADOWMAP_VARIANCEN
- #else
- #undef USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_CSM2
- #define USE_SHADOWMAP_CSMN
- #else
- #undef USE_SHADOWMAP_CSMN
- #endif
- #ifdef USE_SHADOWMAP_CSM_INSTANCED2
- #define USE_SHADOWMAP_CSM_INSTANCEDN
- #else
- #undef USE_SHADOWMAP_CSM_INSTANCEDN
- #endif
- #ifdef USE_SHADOWMAP_DYNLM2
- #define USE_SHADOWMAP_DYNLMN
- #else
- #undef USE_SHADOWMAP_DYNLMN
- #endif
- #ifdef USE_SHADOWMAP_STLM2
- #define USE_SHADOWMAP_STLMN
- #else
- #undef USE_SHADOWMAP_STLMN
- #endif
- #ifdef USE_SHADOWMAP_NODEPTH2
- #define USE_SHADOWMAP_NODEPTHN
- #else
- #undef USE_SHADOWMAP_NODEPTHN
- #endif
- #ifdef USE_SHADOWMAP_CLAMP2
- #define USE_SHADOWMAP_CLAMPN
- #else
- #undef USE_SHADOWMAP_CLAMPN
- #endif
- #define ShadowMapN ShadowMap2
- #define shadowmapN shadowmap2
- #define getShadowMapN getShadowMap2
- #define ShadowMapViewProjN ShadowMapViewProj2
- #define getPCFN getPCF2
- #define getVarianceN getVariance2
- #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon2
- #define shadowMapFilterSizeN shadowMapFilterSize2
- #include "shadow_add2.fx"
- #endif
- #ifdef USE_SHADOWMAP3
- #ifdef USE_SHADOWMAP_NOISE3
- #define USE_SHADOWMAP_NOISEN
- #else
- #undef USE_SHADOWMAP_NOISEN
- #endif
- #ifdef USE_SHADOWMAP_PCF3
- #define USE_SHADOWMAP_PCFN
- #else
- #undef USE_SHADOWMAP_PCFN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE3
- #define USE_SHADOWMAP_VARIANCEN
- #else
- #undef USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_CSM3
- #define USE_SHADOWMAP_CSMN
- #else
- #undef USE_SHADOWMAP_CSMN
- #endif
- #ifdef USE_SHADOWMAP_CSM_INSTANCED3
- #define USE_SHADOWMAP_CSM_INSTANCEDN
- #else
- #undef USE_SHADOWMAP_CSM_INSTANCEDN
- #endif
- #ifdef USE_SHADOWMAP_DYNLM3
- #define USE_SHADOWMAP_DYNLMN
- #else
- #undef USE_SHADOWMAP_DYNLMN
- #endif
- #ifdef USE_SHADOWMAP_STLM3
- #define USE_SHADOWMAP_STLMN
- #else
- #undef USE_SHADOWMAP_STLMN
- #endif
- #ifdef USE_SHADOWMAP_NODEPTH3
- #define USE_SHADOWMAP_NODEPTHN
- #else
- #undef USE_SHADOWMAP_NODEPTHN
- #endif
- #ifdef USE_SHADOWMAP_CLAMP3
- #define USE_SHADOWMAP_CLAMPN
- #else
- #undef USE_SHADOWMAP_CLAMPN
- #endif
- #define ShadowMapN ShadowMap3
- #define shadowmapN shadowmap3
- #define getShadowMapN getShadowMap3
- #define ShadowMapViewProjN ShadowMapViewProj3
- #define getPCFN getPCF3
- #define getVarianceN getVariance3
- #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon3
- #define shadowMapFilterSizeN shadowMapFilterSize3
- #include "shadow_add2.fx"
- #endif
- #ifdef USE_SHADOWMAP4
- #ifdef USE_SHADOWMAP_NOISE4
- #define USE_SHADOWMAP_NOISEN
- #else
- #undef USE_SHADOWMAP_NOISEN
- #endif
- #ifdef USE_SHADOWMAP_PCF4
- #define USE_SHADOWMAP_PCFN
- #else
- #undef USE_SHADOWMAP_PCFN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE4
- #define USE_SHADOWMAP_VARIANCEN
- #else
- #undef USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_CSM4
- #define USE_SHADOWMAP_CSMN
- #else
- #undef USE_SHADOWMAP_CSMN
- #endif
- #ifdef USE_SHADOWMAP_CSM_INSTANCED4
- #define USE_SHADOWMAP_CSM_INSTANCEDN
- #else
- #undef USE_SHADOWMAP_CSM_INSTANCEDN
- #endif
- #ifdef USE_SHADOWMAP_DYNLM4
- #define USE_SHADOWMAP_DYNLMN
- #else
- #undef USE_SHADOWMAP_DYNLMN
- #endif
- #ifdef USE_SHADOWMAP_STLM4
- #define USE_SHADOWMAP_STLMN
- #else
- #undef USE_SHADOWMAP_STLMN
- #endif
- #ifdef USE_SHADOWMAP_NODEPTH4
- #define USE_SHADOWMAP_NODEPTHN
- #else
- #undef USE_SHADOWMAP_NODEPTHN
- #endif
- #ifdef USE_SHADOWMAP_CLAMP4
- #define USE_SHADOWMAP_CLAMPN
- #else
- #undef USE_SHADOWMAP_CLAMPN
- #endif
- #define ShadowMapN ShadowMap4
- #define shadowmapN shadowmap4
- #define getShadowMapN getShadowMap4
- #define ShadowMapViewProjN ShadowMapViewProj4
- #define getPCFN getPCF4
- #define getVarianceN getVariance4
- #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon4
- #define shadowMapFilterSizeN shadowMapFilterSize4
- #include "shadow_add2.fx"
- #endif
- #ifdef USE_SHADOWMAP5
- #ifdef USE_SHADOWMAP_NOISE5
- #define USE_SHADOWMAP_NOISEN
- #else
- #undef USE_SHADOWMAP_NOISEN
- #endif
- #ifdef USE_SHADOWMAP_PCF5
- #define USE_SHADOWMAP_PCFN
- #else
- #undef USE_SHADOWMAP_PCFN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE5
- #define USE_SHADOWMAP_VARIANCEN
- #else
- #undef USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_CSM5
- #define USE_SHADOWMAP_CSMN
- #else
- #undef USE_SHADOWMAP_CSMN
- #endif
- #ifdef USE_SHADOWMAP_CSM_INSTANCED5
- #define USE_SHADOWMAP_CSM_INSTANCEDN
- #else
- #undef USE_SHADOWMAP_CSM_INSTANCEDN
- #endif
- #ifdef USE_SHADOWMAP_DYNLM5
- #define USE_SHADOWMAP_DYNLMN
- #else
- #undef USE_SHADOWMAP_DYNLMN
- #endif
- #ifdef USE_SHADOWMAP_STLM5
- #define USE_SHADOWMAP_STLMN
- #else
- #undef USE_SHADOWMAP_STLMN
- #endif
- #ifdef USE_SHADOWMAP_NODEPTH5
- #define USE_SHADOWMAP_NODEPTHN
- #else
- #undef USE_SHADOWMAP_NODEPTHN
- #endif
- #ifdef USE_SHADOWMAP_CLAMP5
- #define USE_SHADOWMAP_CLAMPN
- #else
- #undef USE_SHADOWMAP_CLAMPN
- #endif
- #define ShadowMapN ShadowMap5
- #define shadowmapN shadowmap5
- #define getShadowMapN getShadowMap5
- #define ShadowMapViewProjN ShadowMapViewProj5
- #define getPCFN getPCF5
- #define getVarianceN getVariance5
- #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon5
- #define shadowMapFilterSizeN shadowMapFilterSize5
- #include "shadow_add2.fx"
- #endif
- float GetShadowMap(float4 pWorld, float smdata=0, float check=1)
- {
- float s = getShadowMap1(pWorld,smdata);
- #ifdef USE_SHADOWMAP2
- s *= getShadowMap2(pWorld,smdata,check);
- #endif
- #ifdef USE_SHADOWMAP3
- s *= getShadowMap3(pWorld,smdata,check);
- #endif
- #ifdef USE_SHADOWMAP4
- s *= getShadowMap4(pWorld,smdata,check);
- #endif
- #ifdef USE_SHADOWMAP5
- s *= getShadowMap5(pWorld,smdata,check);
- #endif
- return s;
- }
- #else
- float GetShadowMap(float4 pWorld, float smdata=0, float check=1)
- {
- return 1;
- }
- #include "shadow_simple_common.fx"
- #define SMShadowedOutput
- #define OutputShadowCoords(p)
- #ifdef USE_SHADOWMAP_CSMN
- #define InputShadowMap(p,check) GetShadowMap(p,0,check)
- //IN.SMdata,check)
- #else
- #define InputShadowMap(p,check) GetShadowMap(p,0,check)
- #endif
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE
- #define USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE2
- #define USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE3
- #define USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE4
- #define USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCE5
- #define USE_SHADOWMAP_VARIANCEN
- #endif
- #ifdef USE_SHADOWMAP_VARIANCEN
- #define SHADOWDEPTHTYPE float2
- float2 getShadowDepth(float4 Position)
- {
- return float2(Position.z,Position.z*Position.z);//pow(Position.z,2));
- }
- float4 getPShadowDepth(float2 Depth)
- {
- return float4(Depth.x,Depth.y,1,1);
- }
- #else
- #define SHADOWDEPTHTYPE float
- float getShadowDepth(float4 Position)
- {
- return Position.z;
- }
- float4 getPShadowDepth(float Depth)
- {
- return float4(Depth,Depth,Depth,Depth);
- }
- #endif
- #define OutputShadowDepth(o,i) o = getShadowDepth(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement