Shader "Hidden/PassthroughMetaPass"
{
Properties
{
[MainTexture] _BaseMap("Texture", 2D) = "white" {}
_EmissionMap("Emission", 2D) = "white" {}
_TransparencyLM("Transmission", 2D) = "white" {}
}
SubShader
{
Pass
{
Name "META"
Tags { "LightMode" = "Meta" }
Cull Off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma shader_feature _EMISSION
#include "UnityCG.cginc"
#include "UnityMetaPass.cginc"
sampler2D _BaseMap;
float4 _BaseMap_ST;
sampler2D _EmissionMap;
float4 _EmissionMap_ST;
struct appdata
{
float4 vertex : POSITION;
float2 uv1 : TEXCOORD1;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 pos : SV_POSITION;
float2 uv1 : TEXCOORD1;
};
v2f vert(appdata v)
{
v2f o;
if (unity_MetaVertexControl.x)
{
o.pos.xy = v.uv1 * unity_LightmapST.xy + unity_LightmapST.zw;
o.pos.zw = 0;
}
else
{
o.pos = mul(UNITY_MATRIX_VP, float4(v.vertex.xyz, 1.0));
}
o.uv1 = v.uv1;
return o;
}
float4 frag(v2f i) : SV_Target
{
if (unity_MetaFragmentControl.x)
{
return tex2Dlod(_BaseMap, float4(TRANSFORM_TEX(i.uv1, _BaseMap), 0, 0));
}
if (unity_MetaFragmentControl.y)
{
return tex2Dlod(_EmissionMap, float4(TRANSFORM_TEX(i.uv1, _EmissionMap), 0, 0));
}
return 0;
}
ENDCG
}
}
}