Files
Northbound/Assets/FlatKit/[Render Pipeline] URP/RenderFeatures/Resources/FlatKitCopyTexture.shader
2026-01-25 11:27:33 +09:00

75 lines
2.1 KiB
Plaintext

Shader "Hidden/FlatKit/CopyTexture"
{
SubShader
{
Tags { "RenderType"="Opaque" "RenderPipeline" = "UniversalPipeline"}
LOD 100
ZWrite Off Cull Off
Pass
{
Name "Custom Copy Texture"
HLSLPROGRAM
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#pragma multi_compile _ _USE_DRAW_PROCEDURAL
float4 _SourceSize;
TEXTURE2D_X(_EffectTexture);
SAMPLER(sampler_EffectTexture);
float4 SampleEffectTexture(float2 uv)
{
return SAMPLE_TEXTURE2D_X(_EffectTexture, sampler_EffectTexture, UnityStereoTransformScreenSpaceTex(uv));
}
struct Attributes
{
float4 positionHCS : POSITION;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct Varyings
{
float4 positionCS : SV_POSITION;
float2 uv : TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
Varyings vert(Attributes input)
{
Varyings output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
#if _USE_DRAW_PROCEDURAL
output.positionCS = float4(input.positionHCS.xyz, 1.0);
#if UNITY_UV_STARTS_AT_TOP
output.positionCS.y *= -1;
#endif
#else
output.positionCS = TransformObjectToHClip(input.positionHCS.xyz);
#endif
output.uv = input.uv;
return output;
}
half4 frag(Varyings input) : SV_Target
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
float4 c = SampleEffectTexture(input.uv);
return c;
}
#pragma vertex vert
#pragma fragment frag
ENDHLSL
}
}
}