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.

63 lines
1.2 KiB

  1. Shader "Hidden/TexturePropertyNode"
  2. {
  3. Properties
  4. {
  5. _Sampler ("_Sampler", 2D) = "white" {}
  6. _Sampler3D ("_Sampler3D", 3D) = "white" {}
  7. _Array ("_Array", 2DArray) = "white" {}
  8. _Cube( "_Cube", CUBE) = "white" {}
  9. _Default ("_Default", Int) = 0
  10. _Type ("_Type", Int) = 0
  11. }
  12. SubShader
  13. {
  14. Pass
  15. {
  16. CGPROGRAM
  17. #pragma vertex vert_img
  18. #pragma fragment frag
  19. #pragma exclude_renderers d3d9
  20. #pragma target 3.5
  21. #include "UnityCG.cginc"
  22. UNITY_DECLARE_TEX2DARRAY( _Array );
  23. samplerCUBE _Cube;
  24. sampler2D _Sampler;
  25. sampler3D _Sampler3D;
  26. int _Default;
  27. int _Type;
  28. float4 frag( v2f_img i ) : SV_Target
  29. {
  30. if(_Default == 1)
  31. {
  32. return 1;
  33. }
  34. else if(_Default == 2)
  35. {
  36. return 0;
  37. }
  38. else if(_Default == 3)
  39. {
  40. return 0.5f;
  41. }
  42. else if(_Default == 4)
  43. {
  44. return float4(0.5,0.5,1,1);
  45. }
  46. else
  47. {
  48. if( _Type == 4 )
  49. return UNITY_SAMPLE_TEX2DARRAY( _Array, float3( i.uv, 0 ) );
  50. else if( _Type == 3 )
  51. return texCUBE( _Cube, float3(i.uv,0) );
  52. else if( _Type == 2 )
  53. return tex3D( _Sampler3D, float3(i.uv,0) );
  54. else
  55. return tex2D( _Sampler, i.uv);
  56. }
  57. }
  58. ENDCG
  59. }
  60. }
  61. }