LayaStandard.shader 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. Shader "LayaAir3D/Mesh/PBRStandardMaterial"
  2. {
  3. Properties
  4. {
  5. _Color("Color", Color) = (1,1,1,1)
  6. _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.01
  7. albedoTexture("Albedo", 2D) = "white" {}
  8. smoothness("Smoothness", Range(0.0, 1.0)) = 0.5
  9. smoothnessTextureScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
  10. [Gamma] metallic("Metallic", Range(0.0, 1.0)) = 0.0
  11. metallicGlossTexture("Metallic", 2D) = "white" {}
  12. normalTextureScale("Scale", Float) = 1.0
  13. normalTexture("Normal Map", 2D) = "bump" {}
  14. parallaxTextureScale("Height Scale", Range(0.005, 0.08)) = 0.02
  15. parallaxTexture("Height Map", 2D) = "black" {}
  16. occlusionTextureStrength("Strength", Range(0.0, 1.0)) = 1.0
  17. occlusionTexture("Occlusion", 2D) = "white" {}
  18. _EmissionColor("Color", Color) = (0,0,0)
  19. _EmissionMap("Emission", 2D) = "white" {}
  20. tilingOffset("TillingOffset",Vector) =(1.0,1.0,0.0,0.0)
  21. [HideInInspector] _Mode("__mode", Float) = 0.0
  22. [HideInInspector] _SrcBlend("__src", Float) = 1.0
  23. [HideInInspector] _DstBlend("__dst", Float) = 0.0
  24. [HideInInspector] _ZWrite("__zw", Float) = 1.0
  25. }
  26. SubShader
  27. {
  28. Tags { "RenderType"="Opaque" }
  29. LOD 300
  30. Pass
  31. {
  32. Name "FORWARD"
  33. Tags{"LightMode"="ForwardBase"}
  34. Blend [_SrcBlend][_DstBlend]
  35. ZWrite[_ZWrite]
  36. CGPROGRAM
  37. #pragma target 3.0
  38. #pragma shader_feature NORMALTEXTURE
  39. #pragma shader_feature _ ALPHATEST TRANSPARENTBLEND
  40. #pragma shader_feature _EMISSION
  41. #pragma shader_feature METALLICGLOSSTEXTURE
  42. #pragma shader_feature _ SMOOTHNESSSOURCE_ALBEDOTEXTURE_ALPHA
  43. #pragma shader_feature PARALLAXTEXTURE
  44. #pragma multi_compile_fwdbase
  45. #pragma multi_compile_fog
  46. #pragma multi_compile_instancing
  47. #pragma vertex vertForwardBase
  48. #pragma fragment fragForwardBaseInternal
  49. #pragma multi_compile_fog
  50. #define LayaStandardPBR 1
  51. #include "../CGIncludes/LayaStandardcore.cginc"
  52. ENDCG
  53. }
  54. Pass
  55. {
  56. Name "FORWARD_DELTA"
  57. Tags { "LightMode" = "ForwardAdd" }
  58. Blend [_SrcBlend] One
  59. Fog { Color(0,0,0,0)}
  60. ZWrite Off
  61. ZTest LEqual
  62. CGPROGRAM
  63. #pragma target 3.0
  64. #pragma shader_feature NORMALTEXTURE
  65. #pragma shader_feature _ ALPHATEST TRANSPARENTBLEND
  66. #pragma shader_feature METALLICGLOSSTEXTURE
  67. #pragma shader_feature _ SMOOTHNESSSOURCE_ALBEDOTEXTURE_ALPHA
  68. #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  69. #pragma shader_feature ___ _DETAIL_MULX2
  70. #pragma shader_feature PARALLAXTEXTURE
  71. #pragma multi_compile_fwdadd_fullshadows
  72. #pragma multi_compile_fog
  73. #pragma vertex vertForwardAdd
  74. #pragma fragment fragForwardAddInternal
  75. #define LayaStandardPBR 1
  76. #include "UnityPBSLighting.cginc"
  77. #include "AutoLight.cginc"
  78. #include "../CGIncludes/LayaStandardcore.cginc"
  79. ENDCG
  80. }
  81. // ------------------------------------------------------------------
  82. // Extracts information for lightmapping, GI (emission, albedo, ...)
  83. // This pass it not used during regular rendering.
  84. Pass
  85. {
  86. Name "META"
  87. Tags { "LightMode" = "Meta" }
  88. Cull Off
  89. CGPROGRAM
  90. #pragma vertex vert_meta
  91. #pragma fragment frag_meta
  92. #pragma shader_feature _EMISSION
  93. #pragma shader_feature_local _METALLICGLOSSMAP
  94. #pragma shader_feature_local _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  95. #pragma shader_feature_local _DETAIL_MULX2
  96. #pragma shader_feature EDITOR_VISUALIZATION
  97. #include "UnityStandardMeta.cginc"
  98. ENDCG
  99. }
  100. }
  101. CustomEditor "PBRStandardShaderGUI"
  102. FallBack "Standard"
  103. }