SHARE
TWEET

Untitled

a guest Oct 17th, 2014 109 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #ifdef USE_SHADOWMAP
  2.        
  3.         static const float shadowNormalOffset = 0.1;
  4.         static const float shadowMapEpsilon = 0.0001;
  5.        
  6.         #ifdef USE_SHADOWMAP_NOISE
  7.                 #define USE_SHADOWMAP_NOISEN
  8.         #else
  9.                 #undef USE_SHADOWMAP_NOISEN
  10.         #endif
  11.  
  12.         #ifdef USE_SHADOWMAP_PCF
  13.                 #define USE_SHADOWMAP_PCFN
  14.         #else
  15.                 #undef USE_SHADOWMAP_PCFN
  16.         #endif
  17.  
  18.         #ifdef USE_SHADOWMAP_VARIANCE
  19.                 #define USE_SHADOWMAP_VARIANCEN
  20.         #else
  21.                 #undef USE_SHADOWMAP_VARIANCEN
  22.         #endif
  23.  
  24.         #ifdef USE_SHADOWMAP_CSM
  25.                 #define USE_SHADOWMAP_CSMN
  26.         #else
  27.                 #undef USE_SHADOWMAP_CSMN
  28.         #endif
  29.  
  30.         #ifdef USE_SHADOWMAP_CSM_INSTANCED
  31.                 #define USE_SHADOWMAP_CSM_INSTANCEDN
  32.         #else
  33.                 #undef USE_SHADOWMAP_CSM_INSTANCEDN
  34.         #endif
  35.  
  36.         #ifdef USE_SHADOWMAP_DYNLM
  37.                 #define USE_SHADOWMAP_DYNLMN
  38.         #else
  39.                 #undef USE_SHADOWMAP_DYNLMN
  40.         #endif
  41.  
  42.         #ifdef USE_SHADOWMAP_STLM
  43.                 #define USE_SHADOWMAP_STLMN
  44.         #else
  45.                 #undef USE_SHADOWMAP_STLMN
  46.         #endif
  47.  
  48.         #ifdef USE_SHADOWMAP_NODEPTH
  49.                 #define USE_SHADOWMAP_NODEPTHN
  50.         #else
  51.                 #undef USE_SHADOWMAP_NODEPTHN
  52.         #endif
  53.  
  54.         #ifdef USE_SHADOWMAP_CLAMP
  55.                 #define USE_SHADOWMAP_CLAMPN
  56.         #else
  57.                 #undef USE_SHADOWMAP_CLAMPN
  58.         #endif
  59.  
  60.         #define ShadowMapN ShadowMap
  61.         #define shadowmapN shadowmap
  62.         #define getShadowMapN getShadowMap1
  63.         #define ShadowMapViewProjN ShadowMapViewProj
  64.         #define getPCFN getPCF
  65.         #define getVarianceN getVariance
  66.         #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon
  67.         #define shadowMapFilterSizeN shadowMapFilterSize
  68.         #include "shadow_add2.fx"
  69.  
  70.         #ifdef USE_SHADOWMAP2
  71.                 #ifdef USE_SHADOWMAP_NOISE2
  72.                         #define USE_SHADOWMAP_NOISEN
  73.                 #else
  74.                         #undef USE_SHADOWMAP_NOISEN
  75.                 #endif
  76.  
  77.                 #ifdef USE_SHADOWMAP_PCF2
  78.                         #define USE_SHADOWMAP_PCFN
  79.                 #else
  80.                         #undef USE_SHADOWMAP_PCFN
  81.                 #endif
  82.  
  83.                 #ifdef USE_SHADOWMAP_VARIANCE2
  84.                         #define USE_SHADOWMAP_VARIANCEN
  85.                 #else
  86.                         #undef USE_SHADOWMAP_VARIANCEN
  87.                 #endif
  88.  
  89.                 #ifdef USE_SHADOWMAP_CSM2
  90.                         #define USE_SHADOWMAP_CSMN
  91.                 #else
  92.                         #undef USE_SHADOWMAP_CSMN
  93.                 #endif
  94.  
  95.                 #ifdef USE_SHADOWMAP_CSM_INSTANCED2
  96.                         #define USE_SHADOWMAP_CSM_INSTANCEDN
  97.                 #else
  98.                         #undef USE_SHADOWMAP_CSM_INSTANCEDN
  99.                 #endif
  100.  
  101.                 #ifdef USE_SHADOWMAP_DYNLM2
  102.                         #define USE_SHADOWMAP_DYNLMN
  103.                 #else
  104.                         #undef USE_SHADOWMAP_DYNLMN
  105.                 #endif
  106.  
  107.                 #ifdef USE_SHADOWMAP_STLM2
  108.                         #define USE_SHADOWMAP_STLMN
  109.                 #else
  110.                         #undef USE_SHADOWMAP_STLMN
  111.                 #endif
  112.  
  113.                 #ifdef USE_SHADOWMAP_NODEPTH2
  114.                         #define USE_SHADOWMAP_NODEPTHN
  115.                 #else
  116.                         #undef USE_SHADOWMAP_NODEPTHN
  117.                 #endif
  118.  
  119.                 #ifdef USE_SHADOWMAP_CLAMP2
  120.                         #define USE_SHADOWMAP_CLAMPN
  121.                 #else
  122.                         #undef USE_SHADOWMAP_CLAMPN
  123.                 #endif
  124.  
  125.                 #define ShadowMapN ShadowMap2
  126.                 #define shadowmapN shadowmap2
  127.                 #define getShadowMapN getShadowMap2
  128.                 #define ShadowMapViewProjN ShadowMapViewProj2
  129.                 #define getPCFN getPCF2
  130.                 #define getVarianceN getVariance2
  131.                 #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon2
  132.                 #define shadowMapFilterSizeN shadowMapFilterSize2
  133.                 #include "shadow_add2.fx"
  134.         #endif
  135.  
  136.         #ifdef USE_SHADOWMAP3
  137.                 #ifdef USE_SHADOWMAP_NOISE3
  138.                         #define USE_SHADOWMAP_NOISEN
  139.                 #else
  140.                         #undef USE_SHADOWMAP_NOISEN
  141.                 #endif
  142.  
  143.                 #ifdef USE_SHADOWMAP_PCF3
  144.                         #define USE_SHADOWMAP_PCFN
  145.                 #else
  146.                         #undef USE_SHADOWMAP_PCFN
  147.                 #endif
  148.  
  149.                 #ifdef USE_SHADOWMAP_VARIANCE3
  150.                         #define USE_SHADOWMAP_VARIANCEN
  151.                 #else
  152.                         #undef USE_SHADOWMAP_VARIANCEN
  153.                 #endif
  154.  
  155.                 #ifdef USE_SHADOWMAP_CSM3
  156.                         #define USE_SHADOWMAP_CSMN
  157.                 #else
  158.                         #undef USE_SHADOWMAP_CSMN
  159.                 #endif
  160.  
  161.                 #ifdef USE_SHADOWMAP_CSM_INSTANCED3
  162.                         #define USE_SHADOWMAP_CSM_INSTANCEDN
  163.                 #else
  164.                         #undef USE_SHADOWMAP_CSM_INSTANCEDN
  165.                 #endif
  166.  
  167.                 #ifdef USE_SHADOWMAP_DYNLM3
  168.                         #define USE_SHADOWMAP_DYNLMN
  169.                 #else
  170.                         #undef USE_SHADOWMAP_DYNLMN
  171.                 #endif
  172.  
  173.                 #ifdef USE_SHADOWMAP_STLM3
  174.                         #define USE_SHADOWMAP_STLMN
  175.                 #else
  176.                         #undef USE_SHADOWMAP_STLMN
  177.                 #endif
  178.  
  179.                 #ifdef USE_SHADOWMAP_NODEPTH3
  180.                         #define USE_SHADOWMAP_NODEPTHN
  181.                 #else
  182.                         #undef USE_SHADOWMAP_NODEPTHN
  183.                 #endif
  184.  
  185.                 #ifdef USE_SHADOWMAP_CLAMP3
  186.                         #define USE_SHADOWMAP_CLAMPN
  187.                 #else
  188.                         #undef USE_SHADOWMAP_CLAMPN
  189.                 #endif
  190.  
  191.                 #define ShadowMapN ShadowMap3
  192.                 #define shadowmapN shadowmap3
  193.                 #define getShadowMapN getShadowMap3
  194.                 #define ShadowMapViewProjN ShadowMapViewProj3
  195.                 #define getPCFN getPCF3
  196.                 #define getVarianceN getVariance3
  197.                 #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon3
  198.                 #define shadowMapFilterSizeN shadowMapFilterSize3
  199.                 #include "shadow_add2.fx"
  200.         #endif
  201.  
  202.         #ifdef USE_SHADOWMAP4
  203.                 #ifdef USE_SHADOWMAP_NOISE4
  204.                         #define USE_SHADOWMAP_NOISEN
  205.                 #else
  206.                         #undef USE_SHADOWMAP_NOISEN
  207.                 #endif
  208.  
  209.                 #ifdef USE_SHADOWMAP_PCF4
  210.                         #define USE_SHADOWMAP_PCFN
  211.                 #else
  212.                         #undef USE_SHADOWMAP_PCFN
  213.                 #endif
  214.  
  215.                 #ifdef USE_SHADOWMAP_VARIANCE4
  216.                         #define USE_SHADOWMAP_VARIANCEN
  217.                 #else
  218.                         #undef USE_SHADOWMAP_VARIANCEN
  219.                 #endif
  220.  
  221.                 #ifdef USE_SHADOWMAP_CSM4
  222.                         #define USE_SHADOWMAP_CSMN
  223.                 #else
  224.                         #undef USE_SHADOWMAP_CSMN
  225.                 #endif
  226.  
  227.                 #ifdef USE_SHADOWMAP_CSM_INSTANCED4
  228.                         #define USE_SHADOWMAP_CSM_INSTANCEDN
  229.                 #else
  230.                         #undef USE_SHADOWMAP_CSM_INSTANCEDN
  231.                 #endif
  232.  
  233.                 #ifdef USE_SHADOWMAP_DYNLM4
  234.                         #define USE_SHADOWMAP_DYNLMN
  235.                 #else
  236.                         #undef USE_SHADOWMAP_DYNLMN
  237.                 #endif
  238.  
  239.                 #ifdef USE_SHADOWMAP_STLM4
  240.                         #define USE_SHADOWMAP_STLMN
  241.                 #else
  242.                         #undef USE_SHADOWMAP_STLMN
  243.                 #endif
  244.  
  245.                 #ifdef USE_SHADOWMAP_NODEPTH4
  246.                         #define USE_SHADOWMAP_NODEPTHN
  247.                 #else
  248.                         #undef USE_SHADOWMAP_NODEPTHN
  249.                 #endif
  250.  
  251.                 #ifdef USE_SHADOWMAP_CLAMP4
  252.                         #define USE_SHADOWMAP_CLAMPN
  253.                 #else
  254.                         #undef USE_SHADOWMAP_CLAMPN
  255.                 #endif
  256.  
  257.                 #define ShadowMapN ShadowMap4
  258.                 #define shadowmapN shadowmap4
  259.                 #define getShadowMapN getShadowMap4
  260.                 #define ShadowMapViewProjN ShadowMapViewProj4
  261.                 #define getPCFN getPCF4
  262.                 #define getVarianceN getVariance4
  263.                 #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon4
  264.                 #define shadowMapFilterSizeN shadowMapFilterSize4
  265.                 #include "shadow_add2.fx"
  266.         #endif
  267.  
  268.         #ifdef USE_SHADOWMAP5
  269.                 #ifdef USE_SHADOWMAP_NOISE5
  270.                         #define USE_SHADOWMAP_NOISEN
  271.                 #else
  272.                         #undef USE_SHADOWMAP_NOISEN
  273.                 #endif
  274.  
  275.                 #ifdef USE_SHADOWMAP_PCF5
  276.                         #define USE_SHADOWMAP_PCFN
  277.                 #else
  278.                         #undef USE_SHADOWMAP_PCFN
  279.                 #endif
  280.  
  281.                 #ifdef USE_SHADOWMAP_VARIANCE5
  282.                         #define USE_SHADOWMAP_VARIANCEN
  283.                 #else
  284.                         #undef USE_SHADOWMAP_VARIANCEN
  285.                 #endif
  286.  
  287.                 #ifdef USE_SHADOWMAP_CSM5
  288.                         #define USE_SHADOWMAP_CSMN
  289.                 #else
  290.                         #undef USE_SHADOWMAP_CSMN
  291.                 #endif
  292.  
  293.                 #ifdef USE_SHADOWMAP_CSM_INSTANCED5
  294.                         #define USE_SHADOWMAP_CSM_INSTANCEDN
  295.                 #else
  296.                         #undef USE_SHADOWMAP_CSM_INSTANCEDN
  297.                 #endif
  298.  
  299.                 #ifdef USE_SHADOWMAP_DYNLM5
  300.                         #define USE_SHADOWMAP_DYNLMN
  301.                 #else
  302.                         #undef USE_SHADOWMAP_DYNLMN
  303.                 #endif
  304.  
  305.                 #ifdef USE_SHADOWMAP_STLM5
  306.                         #define USE_SHADOWMAP_STLMN
  307.                 #else
  308.                         #undef USE_SHADOWMAP_STLMN
  309.                 #endif
  310.  
  311.                 #ifdef USE_SHADOWMAP_NODEPTH5
  312.                         #define USE_SHADOWMAP_NODEPTHN
  313.                 #else
  314.                         #undef USE_SHADOWMAP_NODEPTHN
  315.                 #endif
  316.  
  317.                 #ifdef USE_SHADOWMAP_CLAMP5
  318.                         #define USE_SHADOWMAP_CLAMPN
  319.                 #else
  320.                         #undef USE_SHADOWMAP_CLAMPN
  321.                 #endif
  322.  
  323.                 #define ShadowMapN ShadowMap5
  324.                 #define shadowmapN shadowmap5
  325.                 #define getShadowMapN getShadowMap5
  326.                 #define ShadowMapViewProjN ShadowMapViewProj5
  327.                 #define getPCFN getPCF5
  328.                 #define getVarianceN getVariance5
  329.                 #define GetShadowCoordsAndEpsilonN GetShadowCoordsAndEpsilon5
  330.                 #define shadowMapFilterSizeN shadowMapFilterSize5
  331.                 #include "shadow_add2.fx"
  332.         #endif
  333.  
  334.         float GetShadowMap(float4 pWorld, float smdata=0, float check=1)
  335.         {
  336.                 float s = getShadowMap1(pWorld,smdata);
  337.                 #ifdef USE_SHADOWMAP2
  338.                         s *= getShadowMap2(pWorld,smdata,check);
  339.                 #endif
  340.                 #ifdef USE_SHADOWMAP3
  341.                         s *= getShadowMap3(pWorld,smdata,check);
  342.                 #endif
  343.                 #ifdef USE_SHADOWMAP4
  344.                         s *= getShadowMap4(pWorld,smdata,check);
  345.                 #endif
  346.                 #ifdef USE_SHADOWMAP5
  347.                         s *= getShadowMap5(pWorld,smdata,check);
  348.                 #endif
  349.                 return s;
  350.         }
  351.  
  352. #else
  353.         float GetShadowMap(float4 pWorld, float smdata=0, float check=1)
  354.         {
  355.                 return 1;
  356.         }
  357.  
  358.         #include "shadow_simple_common.fx"
  359.  
  360.         #define SMShadowedOutput
  361.         #define OutputShadowCoords(p)
  362.  
  363.         #ifdef USE_SHADOWMAP_CSMN
  364.         #define InputShadowMap(p,check) GetShadowMap(p,0,check)
  365.         //IN.SMdata,check)
  366.         #else
  367.         #define InputShadowMap(p,check) GetShadowMap(p,0,check)
  368.         #endif
  369. #endif
  370.  
  371.  
  372.  
  373. #ifdef USE_SHADOWMAP_VARIANCE
  374. #define USE_SHADOWMAP_VARIANCEN
  375. #endif
  376.  
  377. #ifdef USE_SHADOWMAP_VARIANCE2
  378. #define USE_SHADOWMAP_VARIANCEN
  379. #endif
  380.  
  381. #ifdef USE_SHADOWMAP_VARIANCE3
  382. #define USE_SHADOWMAP_VARIANCEN
  383. #endif
  384.  
  385. #ifdef USE_SHADOWMAP_VARIANCE4
  386. #define USE_SHADOWMAP_VARIANCEN
  387. #endif
  388.  
  389. #ifdef USE_SHADOWMAP_VARIANCE5
  390. #define USE_SHADOWMAP_VARIANCEN
  391. #endif
  392.  
  393. #ifdef USE_SHADOWMAP_VARIANCEN
  394.  
  395.         #define SHADOWDEPTHTYPE float2
  396.  
  397.         float2 getShadowDepth(float4 Position)
  398.         {
  399.                 return float2(Position.z,Position.z*Position.z);//pow(Position.z,2));
  400.         }
  401.  
  402.  
  403.         float4 getPShadowDepth(float2 Depth)
  404.         {
  405.                 return float4(Depth.x,Depth.y,1,1);
  406.         }
  407.  
  408. #else
  409.  
  410.         #define SHADOWDEPTHTYPE float
  411.  
  412.         float getShadowDepth(float4 Position)
  413.         {
  414.                 return Position.z;
  415.         }
  416.  
  417.         float4 getPShadowDepth(float Depth)
  418.         {
  419.                 return float4(Depth,Depth,Depth,Depth);
  420.         }
  421.  
  422. #endif
  423.  
  424.  
  425. #define OutputShadowDepth(o,i) o = getShadowDepth(i)
RAW Paste Data
Top