Advertisement
Guest User

Untitled

a guest
Jul 12th, 2017
63
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.     uniform vec4 cOutlineColor;
  8.     uniform vec2 cOutlineBlurredMaskHInvSize;
  9. #endif
  10.  
  11. // Default LitSolid Vertex Shader impl:
  12. void VS(float4 iPos : POSITION,
  13.     out float2 vTexCoord : TEXCOORD0,
  14.     out float2 vScreenPos : TEXCOORD1,
  15.     out float4 oPos : OUTPOSITION)
  16. {
  17.     float3 worldPos = GetWorldPos(iModelMatrix);
  18.     oPos = GetClipPos(worldPos);
  19.  
  20.     vTexCoord = GetQuadTexCoord(oPos);
  21.     vScreenPos = GetScreenPosPreDiv(oPos);
  22. }
  23.  
  24. void PS(
  25.     float2 iTexCoord : TEXCOORD0,
  26.     float2 iScreenPos : TEXCOORD1,
  27.     float4 iPos : POSITION,
  28.     out float4 oColor : OUTCOLOR0)
  29. {
  30.      #ifdef MASK
  31.         oColor = vec4(cOutlineColor.rgb, 1.0);
  32.     #endif
  33.  
  34.     #ifdef BLURH
  35.         float4 rgba = Sample2D(DiffMap, vTexCoord + vec2(0.0, 0.0) * cOutlineBlurredMaskHInvSize)
  36.                   + Sample2D(DiffMap, vTexCoord + vec2(-1.0, 0.0) * cOutlineBlurredMaskHInvSize)
  37.                   + Sample2D(DiffMap, vTexCoord + vec2(1.0, 0.0) * cOutlineBlurredMaskHInvSize)
  38.                   + Sample2D(DiffMap, vTexCoord + vec2(-2.0, 0.0) * cOutlineBlurredMaskHInvSize)
  39.                   + Sample2D(DiffMap, vTexCoord + vec2(2.0, 0.0) * cOutlineBlurredMaskHInvSize);
  40.         oColor = rgba * 0.2;
  41.     #endif
  42.  
  43.     #ifdef BLURV
  44.         float4 rgba = Sample2D(DiffMap, vTexCoord + vec2(0.0, 0.0) * cOutlineBlurredMaskHInvSize)
  45.                   + Sample2D(DiffMap, vTexCoord + vec2(0.0, -1.0) * cOutlineBlurredMaskHInvSize)
  46.                   + Sample2D(DiffMap, vTexCoord + vec2(0.0, 1.0) * cOutlineBlurredMaskHInvSize)
  47.                   + Sample2D(DiffMap, vTexCoord + vec2(0.0, -2.0) * cOutlineBlurredMaskHInvSize)
  48.                   + Sample2D(DiffMap, vTexCoord + vec2(0.0, 2.0) * cOutlineBlurredMaskHInvSize);
  49.         oColor = rgba * 0.2;
  50.     #endif
  51.  
  52.     #ifdef OUTPUT
  53.         float4 blurredMask = texture2D(DiffMap, vTexCoord);
  54.         float4 mask = texture2D(NormalMap, vTexCoord);
  55.         float4 viewport = texture2D(SpecMap, vTexCoord);
  56.         blurredMask = clamp(blurredMask - mask.a, 0.0, 1.0);
  57.         blurredMask *= 3.0;
  58.         oColor = viewport * (1.0 - blurredMask.a) + blurredMask;
  59.     #endif
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement