0
0
Unityframework~20 mins

Unlit vs lit shaders in Unity - Practice Questions

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Shader Mastery: Unlit vs Lit
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of a simple unlit shader
What will be the visible color output of this unlit shader applied to a white mesh?
Unity
Shader "Custom/SimpleUnlit" {
  Properties {
    _Color ("Color", Color) = (1,0,0,1)
  }
  SubShader {
    Tags { "RenderType"="Opaque" }
    Pass {
      CGPROGRAM
      #pragma vertex vert
      #pragma fragment frag
      #include "UnityCG.cginc"
      fixed4 _Color;
      struct appdata {
        float4 vertex : POSITION;
      };
      struct v2f {
        float4 pos : SV_POSITION;
      };
      v2f vert (appdata v) {
        v2f o;
        o.pos = UnityObjectToClipPos(v.vertex);
        return o;
      }
      fixed4 frag (v2f i) : SV_Target {
        return _Color;
      }
      ENDCG
    }
  }
}
AThe mesh appears solid red, ignoring all lights.
BThe mesh appears with a gradient depending on light direction.
CThe mesh appears black because no lighting is calculated.
DThe mesh appears white, affected by scene lighting.
Attempts:
2 left
💡 Hint
Unlit shaders do not calculate lighting, so the color is constant.
Predict Output
intermediate
2:00remaining
Output difference between lit and unlit shaders
Given a lit shader and an unlit shader applied to the same mesh under a directional white light, what is the main visible difference?
AThe unlit shader shows shading; the lit shader shows flat color.
BBoth shaders show the same flat color without shading.
CBoth shaders show dynamic shadows but different colors.
DThe lit shader shows shading and highlights; the unlit shader shows flat color.
Attempts:
2 left
💡 Hint
Lit shaders calculate lighting, unlit shaders do not.
🔧 Debug
advanced
2:00remaining
Identify the error in this lit shader snippet
What error will this lit shader code cause when compiled?
Unity
Shader "Custom/BrokenLit" {
  Properties {
    _Color ("Color", Color) = (1,1,1,1)
  }
  SubShader {
    Tags { "RenderType"="Opaque" }
    Pass {
      CGPROGRAM
      #pragma vertex vert
      #pragma fragment frag
      #include "UnityCG.cginc"
      fixed4 _Color;
      struct appdata {
        float4 vertex : POSITION;
        float3 normal : NORMAL;
      };
      struct v2f {
        float4 pos : SV_POSITION;
        float3 normalDir : TEXCOORD0;
      };
      v2f vert (appdata v) {
        v2f o;
        o.pos = UnityObjectToClipPos(v.vertex);
        o.normalDir = normalize(v.normal);
        return o;
      }
      fixed4 frag (v2f i) : SV_Target {
        float3 lightDir = normalize(float3(0,1,0));
        float diff = max(dot(i.normalDir, lightDir), 0);
        return fixed4(_Color.rgb * diff, _Color.a);
      }
      ENDCG
    }
  }
}
AThe shader compiles and runs correctly, showing diffuse lighting.
BThe shader will produce black output because v.normal is not transformed to world space.
CThe shader will fail because normalize() cannot be used on v.normal directly.
DThe shader will cause a syntax error due to missing semicolons.
Attempts:
2 left
💡 Hint
Normals must be transformed to world space for correct lighting.
📝 Syntax
advanced
2:00remaining
Which shader code snippet correctly implements a simple unlit shader?
Select the code snippet that correctly compiles and outputs a fixed color ignoring lighting.
Afixed4 frag(v2f i) { return fixed4(1,0,0,1); }
Bfixed4 frag(v2f i) : SV_Target { return fixed4(1,0,0); }
Cfixed4 frag(v2f i) : SV_Target { return fixed4(1,0,0,1); }
Dfixed4 frag(v2f i) : SV_Target { return float4(1,0,0,1); }
Attempts:
2 left
💡 Hint
Fragment shaders must return fixed4 with SV_Target semantic.
🚀 Application
expert
2:00remaining
Choosing shader type for a performance-critical UI element
You need to render a large number of 2D UI elements with solid colors and no lighting effects in a mobile game. Which shader type is best and why?
AUse unlit shaders because they do not calculate lighting and are more efficient.
BUse lit shaders to ensure the UI elements respond to scene lighting for realism.
CUse unlit shaders but add expensive lighting calculations manually for better quality.
DUse lit shaders with all lights disabled to simulate unlit behavior.
Attempts:
2 left
💡 Hint
Consider performance and visual needs for UI elements.