You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
6.6 KiB

  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "ASESampleShaders/ImprovedReadFromAtlasTiled"
  4. {
  5. Properties
  6. {
  7. [HideInInspector] __dirty( "", Int ) = 1
  8. _Min("Min", Vector) = (0,0,0,0)
  9. _Max("Max", Vector) = (0,0,0,0)
  10. _TileSize("TileSize", Vector) = (2,2,0,0)
  11. _Atlas("Atlas", 2D) = "white" {}
  12. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  13. }
  14. SubShader
  15. {
  16. Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" "IsEmissive" = "true" }
  17. Cull Back
  18. CGPROGRAM
  19. #pragma target 3.0
  20. #pragma surface surf Standard keepalpha addshadow fullforwardshadows
  21. struct Input
  22. {
  23. float2 uv_texcoord;
  24. };
  25. uniform sampler2D _Atlas;
  26. uniform float4 _Atlas_TexelSize;
  27. uniform float2 _Min;
  28. uniform float4 _Atlas_ST;
  29. uniform float2 _TileSize;
  30. uniform float2 _Max;
  31. void surf( Input i , inout SurfaceOutputStandard o )
  32. {
  33. float2 appendResult62 = (float2(_Atlas_TexelSize.x , _Atlas_TexelSize.y));
  34. float2 ScaledMin27 = ( appendResult62 * _Min );
  35. float2 uv_Atlas = i.uv_texcoord * _Atlas_ST.xy + _Atlas_ST.zw;
  36. float2 A61 = uv_Atlas;
  37. float2 invTileSize59 = ( float2( 1,1 ) / _TileSize );
  38. float2 B61 = invTileSize59;
  39. float2 localMyCustomExpression6161 = ( frac(A61/B61)*B61 );
  40. float2 ScaledMax26 = ( _Max * appendResult62 );
  41. float2 Size39 = ( ScaledMax26 - ScaledMin27 );
  42. float2 TiledVar55 = ( localMyCustomExpression6161 * Size39 );
  43. float2 finalUV60 = ( ScaledMin27 + ( TiledVar55 * _TileSize ) );
  44. o.Emission = tex2Dlod( _Atlas, float4( finalUV60, 0, 0.0) ).xyz;
  45. o.Alpha = 1;
  46. }
  47. ENDCG
  48. }
  49. Fallback "Diffuse"
  50. CustomEditor "ASEMaterialInspector"
  51. }
  52. /*ASEBEGIN
  53. Version=12003
  54. 0;92;1541;926;3030.459;1256.044;2.8;False;False
  55. Node;AmplifyShaderEditor.TexelSizeNode;19;-2172.201,55.19999;Float;False;30;1;0;SAMPLER2D;;False;5;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
  56. Node;AmplifyShaderEditor.Vector2Node;14;-1970.199,-60.79998;Float;False;Property;_Max;Max;1;0;0,0;0;3;FLOAT2;FLOAT;FLOAT
  57. Node;AmplifyShaderEditor.DynamicAppendNode;62;-1938.199,83.19994;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  58. Node;AmplifyShaderEditor.Vector2Node;13;-1970.199,211.1999;Float;False;Property;_Min;Min;0;0;0,0;0;3;FLOAT2;FLOAT;FLOAT
  59. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;22;-1730.199,131.1999;Float;False;2;2;0;FLOAT2;0.0,0;False;1;FLOAT2;0,0;False;1;FLOAT2
  60. Node;AmplifyShaderEditor.Vector2Node;56;-1565.199,-325.8001;Float;False;Constant;_Vector0;Vector 0;4;0;1,1;0;3;FLOAT2;FLOAT;FLOAT
  61. Node;AmplifyShaderEditor.Vector2Node;50;-1565.199,-181.8;Float;False;Property;_TileSize;TileSize;3;0;2,2;0;3;FLOAT2;FLOAT;FLOAT
  62. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;23;-1730.199,19.2;Float;False;2;2;0;FLOAT2;0.0,0;False;1;FLOAT2;0.0,0;False;1;FLOAT2
  63. Node;AmplifyShaderEditor.SimpleDivideOpNode;54;-1357.199,-245.8001;Float;False;2;0;FLOAT2;0.0,0;False;1;FLOAT2;0.0,0;False;1;FLOAT2
  64. Node;AmplifyShaderEditor.RegisterLocalVarNode;27;-1538.199,131.1999;Float;False;ScaledMin;-1;True;1;0;FLOAT2;0.0,0;False;1;FLOAT2
  65. Node;AmplifyShaderEditor.RegisterLocalVarNode;26;-1538.199,19.2;Float;False;ScaledMax;-1;True;1;0;FLOAT2;0.0,0;False;1;FLOAT2
  66. Node;AmplifyShaderEditor.RegisterLocalVarNode;59;-1221.199,-250.8001;Float;False;invTileSize;-1;True;1;0;FLOAT2;0.0;False;1;FLOAT2
  67. Node;AmplifyShaderEditor.TextureCoordinatesNode;12;-1325.399,-501.4002;Float;False;0;30;2;3;2;SAMPLER2D;;False;0;FLOAT2;2,2;False;1;FLOAT2;0,0;False;5;FLOAT2;FLOAT;FLOAT;FLOAT;FLOAT
  68. Node;AmplifyShaderEditor.SimpleSubtractOpNode;38;-1298.199,67.19996;Float;False;2;0;FLOAT2;0.0,0;False;1;FLOAT2;0.0;False;1;FLOAT2
  69. Node;AmplifyShaderEditor.CustomExpressionNode;61;-1019.058,-377.8445;Float;False;frac(A/B)*B;2;False;2;True;A;FLOAT2;0,0;In;True;B;FLOAT2;0,0;In;My Custom Expression;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2
  70. Node;AmplifyShaderEditor.RegisterLocalVarNode;39;-1137.199,62.19997;Float;False;Size;0;True;1;0;FLOAT2;0.0,0;False;1;FLOAT2
  71. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;42;-790.6002,-207.8001;Float;False;2;2;0;FLOAT2;0.0,0;False;1;FLOAT2;0.0;False;1;FLOAT2
  72. Node;AmplifyShaderEditor.RegisterLocalVarNode;55;-639.0001,-213.0001;Float;False;TiledVar;1;True;1;0;FLOAT2;0.0,0;False;1;FLOAT2
  73. Node;AmplifyShaderEditor.GetLocalVarNode;41;-458.0991,-283.4985;Float;False;27;0;1;FLOAT2
  74. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;53;-383.6003,-138.2;Float;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0.0;False;1;FLOAT2
  75. Node;AmplifyShaderEditor.SimpleAddOpNode;40;-204.5002,-267.0001;Float;False;2;2;0;FLOAT2;0.0,0;False;1;FLOAT2;0.0;False;1;FLOAT2
  76. Node;AmplifyShaderEditor.RangedFloatNode;58;-16,-112;Float;False;Constant;_Float0;Float 0;4;0;0;0;0;0;1;FLOAT
  77. Node;AmplifyShaderEditor.RegisterLocalVarNode;60;-64,-272;Float;False;finalUV;2;True;1;0;FLOAT2;0.0;False;1;FLOAT2
  78. Node;AmplifyShaderEditor.SamplerNode;30;176,-304;Float;True;Property;_Atlas;Atlas;3;0;None;True;0;False;white;Auto;False;Object;-1;MipLevel;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
  79. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;546.5997,-353.9999;Float;False;True;2;Float;ASEMaterialInspector;0;Standard;ASESampleShaders/ImprovedReadFromAtlasTiled;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;0;False;0;0;Opaque;0.5;True;True;0;False;Opaque;Geometry;All;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;False;0;255;255;0;0;0;0;False;0;4;10;25;False;0.5;True;0;Zero;Zero;0;Zero;Zero;Add;Add;0;False;0;0,0,0,0;VertexOffset;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;0;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0.0;False;4;FLOAT;0.0;False;5;FLOAT;0.0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0.0;False;9;FLOAT;0.0;False;10;OBJECT;0.0;False;11;FLOAT3;0.0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
  80. WireConnection;62;0;19;1
  81. WireConnection;62;1;19;2
  82. WireConnection;22;0;62;0
  83. WireConnection;22;1;13;0
  84. WireConnection;23;0;14;0
  85. WireConnection;23;1;62;0
  86. WireConnection;54;0;56;0
  87. WireConnection;54;1;50;0
  88. WireConnection;27;0;22;0
  89. WireConnection;26;0;23;0
  90. WireConnection;59;0;54;0
  91. WireConnection;38;0;26;0
  92. WireConnection;38;1;27;0
  93. WireConnection;61;0;12;0
  94. WireConnection;61;1;59;0
  95. WireConnection;39;0;38;0
  96. WireConnection;42;0;61;0
  97. WireConnection;42;1;39;0
  98. WireConnection;55;0;42;0
  99. WireConnection;53;0;55;0
  100. WireConnection;53;1;50;0
  101. WireConnection;40;0;41;0
  102. WireConnection;40;1;53;0
  103. WireConnection;60;0;40;0
  104. WireConnection;30;1;60;0
  105. WireConnection;30;2;58;0
  106. WireConnection;0;2;30;0
  107. ASEEND*/
  108. //CHKSM=0FF21583C22951D2EB8B4637F9BF9FF8415C9AA0