Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "DualFilteringKawaseBlur"
- {
- HLSLINCLUDE
- #pragma target 4.5
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl"
- SAMPLER(sampler_BlitTexture);
- half2 _HalfPixel;
- Varyings Vertex(Attributes input)
- {
- Varyings OUT;
- OUT.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID);
- OUT.texcoord = GetFullScreenTriangleTexCoord(input.vertexID) * _BlitScaleBias.xy + _BlitScaleBias.zw;;
- return OUT;
- }
- half4 FragmentDownsampling(Varyings IN) : SV_Target
- {
- half4 sum = SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord) * 4.0;
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord - _HalfPixel);
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + _HalfPixel);
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(_HalfPixel.x, -_HalfPixel.y));
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord - half2(_HalfPixel.x, -_HalfPixel.y));
- return sum / 8.0;
- }
- half4 FragmentUpsampling(Varyings IN) : SV_Target
- {
- half4 sum = SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(-_HalfPixel.x * 2.0, 0.0));
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(-_HalfPixel.x, _HalfPixel.y)) * 2.0;
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(0.0, _HalfPixel.y * 2.0));
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(_HalfPixel.x, _HalfPixel.y)) * 2.0;
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(_HalfPixel.x * 2.0, 0.0));
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(_HalfPixel.x, -_HalfPixel.y)) * 2.0;
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(0.0, -_HalfPixel.y * 2.0));
- sum += SAMPLE_TEXTURE2D(_BlitTexture, sampler_BlitTexture, IN.texcoord + half2(-_HalfPixel.x, -_HalfPixel.y)) * 2.0;
- return sum / 12.0;
- }
- ENDHLSL
- SubShader
- {
- Tags
- {
- "RenderType"="Opaque" "RenderPipeline" = "UniversalPipeline"
- }
- LOD 100
- ZWrite Off
- Cull Off
- Pass
- {
- Name "Downsampling"
- HLSLPROGRAM
- #pragma vertex Vertex
- #pragma fragment FragmentDownsampling
- ENDHLSL
- }
- Pass
- {
- Name "Upsampling"
- HLSLPROGRAM
- #pragma vertex Vertex
- #pragma fragment FragmentUpsampling
- ENDHLSL
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement