diff options
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_TextureArrayNode.shader')
-rw-r--r-- | Assets/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_TextureArrayNode.shader | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_TextureArrayNode.shader b/Assets/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_TextureArrayNode.shader new file mode 100644 index 00000000..9b9c8bec --- /dev/null +++ b/Assets/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_TextureArrayNode.shader @@ -0,0 +1,63 @@ +Shader "Hidden/TextureArrayNode" +{ + Properties + { + _A ("_UVs", 2D) = "white" {} + _B ("_Index", 2D) = "white" {} + _C ("_Lod", 2D) = "white" {} + _D ("_NormalScale", 2D) = "white" {} + _G ("_Tex", 2D) = "white" {} + _TexConnected ("_TexConnected", Int) = 0 + } + SubShader + { + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + #pragma target 3.5 + #include "UnityCG.cginc" + #include "UnityStandardUtils.cginc" + + uniform UNITY_DECLARE_TEX2DARRAY( _Sampler ); + sampler2D _A; + sampler2D _B; + sampler2D _C; + sampler2D _D; + sampler2D _G; + float _CustomUVs; + float _LodType; + float _Unpack; + int _TexConnected; + + float4 frag( v2f_img i ) : SV_Target + { + float2 uvs = i.uv; + if ( _CustomUVs == 1 ) + uvs = tex2D( _A, i.uv ).xy; + + float n = tex2D( _D, i.uv ).r; + float4 c = 0; + if ( _LodType == 1 ) { + float lod = tex2D( _C, i.uv ).r; + c = UNITY_SAMPLE_TEX2DARRAY_LOD( _Sampler, float3( uvs, tex2D( _B, i.uv ).r ), lod ); + } + else if( _TexConnected == 0) { + c = UNITY_SAMPLE_TEX2DARRAY( _Sampler, float3( uvs, tex2D( _B, i.uv ).r ) ); + } + else { + c = tex2D( _G, uvs ); + } + + if ( _Unpack == 1 ) + { + c.rgb = UnpackScaleNormal(c, n); + } + + return c; + } + ENDCG + } + } +} |