diff options
Diffstat (limited to 'VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/Sample Assets/Shaders/Mobile/VRChat-Mobile-BumpedSpecular.shader')
| -rw-r--r-- | VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/Sample Assets/Shaders/Mobile/VRChat-Mobile-BumpedSpecular.shader | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/Sample Assets/Shaders/Mobile/VRChat-Mobile-BumpedSpecular.shader b/VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/Sample Assets/Shaders/Mobile/VRChat-Mobile-BumpedSpecular.shader new file mode 100644 index 00000000..4ff96f09 --- /dev/null +++ b/VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/Sample Assets/Shaders/Mobile/VRChat-Mobile-BumpedSpecular.shader @@ -0,0 +1,64 @@ +// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) + +// Simplified Bumped Specular shader. Differences from regular Bumped Specular one: +// - no Main Color nor Specular Color +// - specular lighting directions are approximated per vertex +// - writes zero to alpha channel +// - Normalmap uses Tiling/Offset of the Base texture +// - no Deferred Lighting support +// - no Lightmap support +// - fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH. + +Shader "VRChat/Mobile/Bumped Mapped Specular" +{ + Properties + { + _Shininess ("Shininess", Range (0.03, 1)) = 0.078125 + _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} + [NoScaleOffset] _BumpMap ("Normalmap", 2D) = "bump" {} + } + + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 250 + + CGPROGRAM + #pragma surface surf MobileBlinnPhong exclude_path:prepass nolightmap noforwardadd halfasview interpolateview + + inline fixed4 LightingMobileBlinnPhong (SurfaceOutput s, fixed3 lightDir, fixed3 halfDir, fixed atten) + { + fixed diff = max (0, dot (s.Normal, lightDir)); + fixed nh = max (0, dot (s.Normal, halfDir)); + fixed spec = pow (nh, s.Specular*128) * s.Gloss; + + fixed4 c; + c.rgb = (s.Albedo * _LightColor0.rgb * diff + _LightColor0.rgb * spec) * atten; + UNITY_OPAQUE_ALPHA(c.a); + return c; + } + + sampler2D _MainTex; + sampler2D _BumpMap; + half _Shininess; + + struct Input + { + float2 uv_MainTex; + float4 color : COLOR; + }; + + void surf (Input IN, inout SurfaceOutput o) + { + fixed4 tex = tex2D(_MainTex, IN.uv_MainTex); + o.Albedo = tex.rgb * IN.color; + o.Gloss = tex.a; + o.Alpha = tex.a; + o.Specular = _Shininess; + o.Normal = UnpackNormal (tex2D(_BumpMap, IN.uv_MainTex)); + } + ENDCG + } + + FallBack "Mobile/VertexLit" +} |