amiga.template 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. Shader "BabylonJS/NewShaderProgram" {
  2. Properties {
  3. _Color ("Color", Color) = (1,1,1,1)
  4. _Brightness ("Intensity", Range(1.0, 10.0)) = 1.0
  5. [NoScaleOffset] _MainTex ("Albedo (RGB)", 2D) = "white" {}
  6. _ScaleX ("Scale Factor X", Range (0.0, 10.0)) = 1.0
  7. _ScaleY ("Scale Factor Y", Range (0.0, 10.0)) = 1.0
  8. _Metallic ("Metallic", Range(0,1)) = 0.0
  9. _Glossiness ("Smoothness", Range(0,1)) = 0.5
  10. [ToggleOff] _NeedsAlphaTesting ("Needs Alpha Testing", Int) = 0
  11. [ToggleOff] _NeedsAlphaBlending ("Needs Alpha Blending", Int) = 0
  12. [Enum(Disable,0,Additive,1,Combine,2,Subtract,3,Multiply,4,Maximized,5,OneOne,6)] _AlphaMode ("Alpha Blending Mode", int) = 2
  13. }
  14. SubShader {
  15. Tags { "RenderType"="Opaque" }
  16. Pass {
  17. CGPROGRAM
  18. //////////////////////////////////////////////////////////
  19. // BABYLON WEBGL RUNTIME SHADER PROGRAM SECTIONS (GLSL) //
  20. //////////////////////////////////////////////////////////
  21. #ifdef BABYLON
  22. attributes: ["position", "normal", "uv"]
  23. uniforms: ["worldViewProjection, _Color, _Brightness, _Glossiness, _Metallic, _ScaleX, _ScaleY"]
  24. samplers: []
  25. defines: []
  26. #endif //BABYLON-END
  27. #ifdef VERTEX
  28. attribute vec3 position;
  29. attribute vec3 normal;
  30. attribute vec2 uv;
  31. uniform mat4 worldViewProjection;
  32. precision highp float;
  33. varying vec2 vUV;
  34. void main(void)
  35. {
  36. gl_Position = worldViewProjection * vec4(position, 1.0);
  37. vUV = uv;
  38. }
  39. #endif //VERTEX-END
  40. #ifdef FRAGMENT
  41. precision highp float;
  42. varying vec2 vUV;
  43. uniform vec4 _Color;
  44. uniform float _Brightness;
  45. uniform float _Glossiness;
  46. uniform float _Metallic;
  47. uniform float _ScaleX;
  48. uniform float _ScaleY;
  49. uniform sampler2D _MainTex;
  50. void main(void)
  51. {
  52. gl_FragColor = texture2D(_MainTex, vec2(vUV.x * _ScaleX, vUV.y * _ScaleY)) * _Color * _Brightness;
  53. }
  54. #endif //FRAGMENT-END
  55. ////////////////////////////////////////////////////////
  56. // DEFAULT UNITY EDITOR SHADER PROGRAM SECTION (HLSL) //
  57. ////////////////////////////////////////////////////////
  58. #pragma exclude_renderers d3d11 xbox360 gles
  59. #pragma surface surf Standard fullforwardshadows
  60. #pragma target 3.0
  61. sampler2D _MainTex;
  62. struct Input {
  63. float2 uv_MainTex;
  64. };
  65. half _Brightness;
  66. half _Glossiness;
  67. half _Metallic;
  68. half _ScaleX;
  69. half _ScaleY;
  70. fixed4 _Color;
  71. void surf (Input IN, inout SurfaceOutputStandard o) {
  72. // Albedo comes from a texture tinted by color
  73. float2 vUV = IN.uv_MainTex;
  74. fixed4 c = tex2D (_MainTex, float2(vUV.x * _ScaleX, vUV.y * _ScaleY)) * _Color * _Brightness;
  75. o.Albedo = c.rgb;
  76. // Metallic and smoothness come from slider variables
  77. o.Metallic = _Metallic;
  78. o.Smoothness = _Glossiness;
  79. o.Alpha = c.a;
  80. }
  81. ENDCG
  82. }
  83. }
  84. FallBack "Diffuse"
  85. }