Advertisement
Guest User

Untitled

a guest
Jul 12th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "Uniforms.hlsl"
  2. #include "Samplers.hlsl"
  3. #include "Transform.hlsl"
  4. #include "ScreenPos.hlsl"
  5.  
  6. #ifdef COMPILEPS
  7. cbuffer CustomPS : register(b6)
  8. {
  9.     float4 cOutlineColor;
  10.     float2 cOutlineBlurredMaskHInvSize;
  11. }
  12. #endif
  13.  
  14.  
  15. // Default LitSolid Vertex Shader impl:
  16. void VS(float4 iPos : POSITION,
  17.     out float2 vTexCoord : TEXCOORD0,
  18.     out float2 vScreenPos : TEXCOORD1,
  19.     out float4 oPos : OUTPOSITION)
  20. {
  21.     float3 worldPos = GetWorldPos(iModelMatrix);
  22.     oPos = GetClipPos(worldPos);
  23.  
  24.     vTexCoord = GetQuadTexCoord(oPos);
  25.     vScreenPos = GetScreenPosPreDiv(oPos);
  26. }
  27.  
  28. void PS(
  29.     float2 iTexCoord : TEXCOORD0,
  30.     float2 iScreenPos : TEXCOORD1,
  31.     float4 iPos : POSITION,
  32.     out float4 oColor : OUTCOLOR0)
  33. {
  34.      #ifdef MASK
  35.         oColor = float4(cOutlineColor.rgb, 1.0);
  36.     #endif
  37.  
  38.     #ifdef BLURH
  39.         float4 rgba = Sample2D(DiffMap, iTexCoord + float2(0.0, 0.0) * cOutlineBlurredMaskHInvSize)
  40.                   + Sample2D(DiffMap, iTexCoord + float2(-1.0, 0.0) * cOutlineBlurredMaskHInvSize)
  41.                   + Sample2D(DiffMap, iTexCoord + float2(1.0, 0.0) * cOutlineBlurredMaskHInvSize)
  42.                   + Sample2D(DiffMap, iTexCoord + float2(-2.0, 0.0) * cOutlineBlurredMaskHInvSize)
  43.                   + Sample2D(DiffMap, iTexCoord + float2(2.0, 0.0) * cOutlineBlurredMaskHInvSize);
  44.         oColor = rgba * 0.2;
  45.     #endif
  46.  
  47.     #ifdef BLURV
  48.         float4 rgba = Sample2D(DiffMap, iTexCoord + float2(0.0, 0.0) * cOutlineBlurredMaskHInvSize)
  49.                   + Sample2D(DiffMap, iTexCoord + float2(0.0, -1.0) * cOutlineBlurredMaskHInvSize)
  50.                   + Sample2D(DiffMap, iTexCoord + float2(0.0, 1.0) * cOutlineBlurredMaskHInvSize)
  51.                   + Sample2D(DiffMap, iTexCoord + float2(0.0, -2.0) * cOutlineBlurredMaskHInvSize)
  52.                   + Sample2D(DiffMap, iTexCoord + float2(0.0, 2.0) * cOutlineBlurredMaskHInvSize);
  53.         oColor = rgba * 0.2;
  54.     #endif
  55.  
  56.     #ifdef OUTPUT
  57.         float4 blurredMask = Sample2D(DiffMap, iTexCoord);
  58.         float4 mask = Sample2D(NormalMap, iTexCoord);
  59.         float4 viewport = Sample2D(SpecMap, iTexCoord);
  60.         blurredMask = clamp(blurredMask - mask.a, 0.0, 1.0);
  61.         blurredMask *= 3.0;
  62.         oColor = viewport * (1.0 - blurredMask.a) + blurredMask;
  63.     #endif
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement