summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/Sample Assets/Shaders/Mobile/VRChat-Mobile-BumpedSpecular.shader
diff options
context:
space:
mode:
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.shader64
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"
+}