StandardDoubleSided.shader 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. Shader "Custom/StandardDoubleSided"
  2. {
  3. Properties
  4. {
  5. _Color("Color", Color) = (1,1,1,1)
  6. _MainTex("Albedo", 2D) = "white" {}
  7. _Cutoff("Alpha Cutoff", Range(0.0,1.0)) = 0.5
  8. _Glossiness("Smoothness", Range(0.0,1.0)) = 0.5
  9. _Metallic("Metallic", Range(0.0,1.0)) = 0.0
  10. _MetallicGlossMap("Metallic", 2D) = "white" {}
  11. _BumpScale("Scale", Float) = 1.0
  12. _BumpMap("Normal Map", 2D) = "bump" {}
  13. _EmissionColor("Color", Color) = (0,0,0)
  14. _EmissionMap("Emission", 2D) = "white" {}
  15. _DetailMask("Detail Mask", 2D) = "white" {}
  16. _DetailAlbedoMap("Detail Albedo", 2D) = "grey" {}
  17. _DetailNormalMapScale("Scale", Float) = 1.0
  18. _DetailNormalMap("Normal Map", 2D) = "bump" {}
  19. }
  20. SubShader
  21. {
  22. Tags { "RenderType" = "Opaque" }
  23. LOD 300
  24. // ✅ 关键:关闭背面剔除
  25. Cull Off
  26. CGPROGRAM
  27. #pragma surface surf Standard fullforwardshadows
  28. #pragma target 3.0
  29. sampler2D _MainTex;
  30. fixed4 _Color;
  31. half _Glossiness;
  32. half _Metallic;
  33. sampler2D _MetallicGlossMap;
  34. sampler2D _BumpMap;
  35. sampler2D _EmissionMap;
  36. fixed4 _EmissionColor;
  37. struct Input
  38. {
  39. float2 uv_MainTex;
  40. float2 uv_BumpMap;
  41. float2 uv_MetallicGlossMap;
  42. float2 uv_EmissionMap;
  43. };
  44. void surf(Input IN, inout SurfaceOutputStandard o)
  45. {
  46. fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
  47. o.Albedo = c.rgb;
  48. o.Metallic = _Metallic;
  49. o.Smoothness = _Glossiness;
  50. o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
  51. o.Emission = tex2D(_EmissionMap, IN.uv_EmissionMap).rgb * _EmissionColor.rgb;
  52. o.Alpha = c.a;
  53. }
  54. ENDCG
  55. }
  56. FallBack "Diffuse"
  57. }