Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Uniforms.hlsl"
- #include "Samplers.hlsl"
- #include "Transform.hlsl"
- #include "ScreenPos.hlsl"
- #ifdef COMPILEPS
- cbuffer CustomPS : register(b6)
- {
- float4 cOutlineColor;
- float2 cOutlineBlurredMaskHInvSize;
- }
- #endif
- // Default LitSolid Vertex Shader impl:
- void VS(float4 iPos : POSITION,
- out float2 vTexCoord : TEXCOORD0,
- out float2 vScreenPos : TEXCOORD1,
- out float4 oPos : OUTPOSITION)
- {
- float3 worldPos = GetWorldPos(iModelMatrix);
- oPos = GetClipPos(worldPos);
- vTexCoord = GetQuadTexCoord(oPos);
- vScreenPos = GetScreenPosPreDiv(oPos);
- }
- void PS(
- float2 iTexCoord : TEXCOORD0,
- float2 iScreenPos : TEXCOORD1,
- float4 iPos : POSITION,
- out float4 oColor : OUTCOLOR0)
- {
- #ifdef MASK
- oColor = float4(cOutlineColor.rgb, 1.0);
- #endif
- #ifdef BLURH
- float4 rgba = Sample2D(DiffMap, iTexCoord + float2(0.0, 0.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(-1.0, 0.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(1.0, 0.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(-2.0, 0.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(2.0, 0.0) * cOutlineBlurredMaskHInvSize);
- oColor = rgba * 0.2;
- #endif
- #ifdef BLURV
- float4 rgba = Sample2D(DiffMap, iTexCoord + float2(0.0, 0.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(0.0, -1.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(0.0, 1.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(0.0, -2.0) * cOutlineBlurredMaskHInvSize)
- + Sample2D(DiffMap, iTexCoord + float2(0.0, 2.0) * cOutlineBlurredMaskHInvSize);
- oColor = rgba * 0.2;
- #endif
- #ifdef OUTPUT
- float4 blurredMask = Sample2D(DiffMap, iTexCoord);
- float4 mask = Sample2D(NormalMap, iTexCoord);
- float4 viewport = Sample2D(SpecMap, iTexCoord);
- blurredMask = clamp(blurredMask - mask.a, 0.0, 1.0);
- blurredMask *= 3.0;
- oColor = viewport * (1.0 - blurredMask.a) + blurredMask;
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement