diff options
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_SamplerNode.shader')
-rw-r--r-- | Assets/ThirdParty/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_SamplerNode.shader | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_SamplerNode.shader b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_SamplerNode.shader new file mode 100644 index 00000000..ca573ce4 --- /dev/null +++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/EditorResources/Previews/Preview_SamplerNode.shader @@ -0,0 +1,141 @@ +Shader "Hidden/SamplerNode" +{ + Properties + { + _B ("_UVs", 2D) = "white" {} + _C ("_Level", 2D) = "white" {} + _F ("_NormalScale", 2D) = "white" {} + _CustomUVs ("_CustomUVs", Int) = 0 + _Unpack ("_Unpack", Int) = 0 + _LodType ("_LodType", Int) = 0 + + _Sampler ("_Sampler", 2D) = "white" {} + _Sampler3D ("_Sampler3D", 3D) = "white" {} + _Array ("_Array", 2DArray) = "white" {} + _Cube( "_Cube", CUBE) = "white" {} + _Default ("_Default", Int) = 0 + _Type ("_Type", Int) = 0 + } + SubShader + { + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + #pragma exclude_renderers d3d9 + #pragma target 3.5 + #include "UnityCG.cginc" + #include "UnityStandardUtils.cginc" + + sampler2D _F; + int _CustomUVs; + int _Unpack; + int _Default; + + float4 frag( v2f_img i ) : SV_Target + { + if( _Default == 1 ) + { + return 1; + } + else if( _Default == 2 ) + { + return 0; + } + else if( _Default == 3 ) + { + return 0.5f; + } + else if( _Default == 4 ) + { + float4 h = float4(0.5,0.5,1,1); + if ( _Unpack == 1 ) + { + h.rgb = UnpackScaleNormal( h.xxyy, tex2D( _F, i.uv ).r ); + } + return h; + } + return 1; + } + ENDCG + } + + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + #pragma exclude_renderers d3d9 + #pragma target 3.5 + #include "UnityCG.cginc" + #include "UnityStandardUtils.cginc" + + sampler2D _B; + sampler2D _C; + sampler2D _F; + int _CustomUVs; + int _Unpack; + int _LodType; + + UNITY_DECLARE_TEX2DARRAY (_Array); + samplerCUBE _Cube; + sampler2D _Sampler; + sampler3D _Sampler3D; + int _Type; + + float4 frag (v2f_img i) : SV_Target + { + if (_Type == 4) + { + return UNITY_SAMPLE_TEX2DARRAY (_Array, float3(i.uv, 0)); + } + else if (_Type == 3) + { + float3 uvs = float3(i.uv,0); + + if (_CustomUVs == 1) + uvs = tex2D (_B, i.uv).xyz; + + return texCUBE (_Cube, uvs); + } + else if (_Type == 2) + { + return tex3D (_Sampler3D, float3(i.uv,0)); + } + else + { + float2 uvs = i.uv; + float4 c = 0; + + if (_CustomUVs == 1) + uvs = tex2D (_B, i.uv).xy; + + if (_LodType == 1) + { + float lod = tex2D (_C, i.uv).r; + c = tex2Dlod (_Sampler, float4(uvs,0,lod)); + } + else if (_LodType == 2) + { + float bias = tex2D (_C, i.uv).r; + c = tex2Dbias (_Sampler, float4(uvs,0,bias)); + } + else + { + c = tex2D (_Sampler, uvs); + } + + if (_Unpack == 1) + { + float nscale = tex2D (_F, i.uv).r; + c.rgb = UnpackScaleNormal (c, nscale); + } + + return c; + } + } + ENDCG + } + } +} |