|
|
- /*
- This shader is used to render the impostor while clearing out the alpha of the eye buffer
- The important details here are:
- - the use of the Geometry+1 queue to make sure the impostor is drawn after all other opaque objects but before alpha
- - the keepalpha parameter that allow unity to actually write the alpha we return at the end of the shader.
- */
-
- Shader "Oculus/Underlay Impostor" {
- Properties{
- _Color("Color", Color) = (1,1,1,1)
- _MainTex("Albedo (RGB)", 2D) = "white" {}
- _Glossiness("Smoothness", Range(0,1)) = 0.5
- _Metallic("Metallic", Range(0,1)) = 0.0
- }
- SubShader{
- Tags { "Queue" = "Geometry+1" "RenderType" = "Opaque" }
- LOD 200
-
- CGPROGRAM
- // Physically based Standard lighting model, and enable shadows on all light types
- #pragma surface surf Standard fullforwardshadows keepalpha
-
- // Use shader model 3.0 target, to get nicer looking lighting
- #pragma target 3.0
-
- sampler2D _MainTex;
-
- struct Input {
- float2 uv_MainTex;
- };
-
- half _Glossiness;
- half _Metallic;
- fixed4 _Color;
-
- void surf(Input IN, inout SurfaceOutputStandard o) {
- // Albedo comes from a texture tinted by color
- fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
- o.Albedo = c.rgb;
- // Metallic and smoothness come from slider variables
- o.Metallic = _Metallic;
- o.Smoothness = _Glossiness;
- o.Alpha = 0.f;
- }
- ENDCG
- }
- FallBack "Diffuse"
- }
|