📖 Scenario: You are creating a simple Unity scene where you want to enhance the visual look by adding bloom and color grading effects. These effects will make the scene look more vibrant and visually appealing, similar to how photos are edited to look brighter and more colorful.
🎯 Goal: Learn how to set up a Post Processing Volume in Unity and apply bloom and color grading effects using the Post Processing Stack. You will create a volume, configure bloom intensity, and adjust color grading to change the scene's mood.
📋 What You'll Learn
Create a Post Processing Volume in the scene
Add and configure a Bloom effect with intensity 5
Add and configure a Color Grading effect with increased saturation
Print confirmation messages after setting up each effect
💡 Why This Matters
🌍 Real World
Game developers use bloom and color grading to improve the visual quality and mood of their games, making scenes more immersive and attractive.
💼 Career
Understanding post processing effects is important for roles like Unity developer, game artist, and technical artist to create polished and professional game visuals.
Progress0 / 4 steps
1
Create a Post Processing Volume
Create a PostProcessVolume variable called postProcessVolume and assign it by adding a PostProcessVolume component to the current GameObject.
Unity
Hint
Use gameObject.AddComponent<PostProcessVolume>() to add the component and assign it to postProcessVolume.
2
Configure Bloom Effect
Create a Bloom variable called bloom, instantiate it, set its intensity to 5f, and add it to a new PostProcessProfile assigned to postProcessVolume.profile. Also, set postProcessVolume.isGlobal to true.
Unity
Hint
Create a new PostProcessProfile, add the bloom effect to it, and assign it to the volume's profile.
3
Add Color Grading Effect
Create a ColorGrading variable called colorGrading, instantiate it, set its saturation to 20f, and add it to the existing postProcessVolume.profile.
Unity
Hint
Instantiate ColorGrading, set saturation, and add it to the profile.
4
Print Confirmation Messages
Add two Debug.Log statements inside Start(): one printing "Bloom effect set with intensity 5" after setting bloom, and another printing "Color grading set with saturation 20" after setting color grading.
Unity
Hint
Use Debug.Log to print messages after setting each effect.
Practice
(1/5)
1. What does the Bloom effect do in Unity's post-processing?
easy
A. Adds a soft glow to bright areas to make lights look natural
B. Changes the color saturation of the entire scene
C. Sharpens the edges of objects in the scene
D. Removes shadows from the scene
Solution
Step 1: Understand Bloom effect purpose
Bloom adds a glow effect around bright parts of the image to simulate light scattering.
Step 2: Compare options to Bloom definition
Only Adds a soft glow to bright areas to make lights look natural describes adding a soft glow to bright areas, matching Bloom's function.
Final Answer:
Adds a soft glow to bright areas to make lights look natural -> Option A
Quick Check:
Bloom = Soft glow on bright areas [OK]
Hint: Bloom = glow around bright lights, not color changes [OK]
Common Mistakes:
Confusing Bloom with color grading
Thinking Bloom sharpens edges
Assuming Bloom removes shadows
2. Which of the following is the correct way to enable Bloom in a Unity Volume component via script?
easy
A. volume.profile.Enable<Bloom>();
B. volume.profile.TryGet<Bloom>(out Bloom bloom); bloom.active = true;
C. volume.profile.SetActive<Bloom>(true);
D. volume.profile.GetComponent<Bloom>().enabled = true;
Solution
Step 1: Recall Unity Volume API for post-processing
To access and enable Bloom, use TryGet to get the Bloom component and set its active property.
Step 2: Analyze each option's syntax
volume.profile.TryGet<Bloom>(out Bloom bloom); bloom.active = true; uses TryGet and sets bloom.active = true, which is correct. Others use invalid or non-existent methods.
Final Answer:
volume.profile.TryGet<Bloom>(out Bloom bloom); bloom.active = true; -> Option B
Quick Check:
Use TryGet and set active true [OK]
Hint: Use TryGet to access and activate Bloom in Volume profile [OK]
Common Mistakes:
Using GetComponent instead of TryGet
Calling non-existent Enable or SetActive methods
Setting enabled instead of active property
3. Given this code snippet in Unity, what will be the effect on the scene's color grading?
var volume = GetComponent<Volume>();
if (volume.profile.TryGet<ColorAdjustments>(out var colorAdjust)) {
colorAdjust.saturation.value = -100f;
colorAdjust.contrast.value = 50f;
}
medium
A. The scene colors become fully desaturated with increased contrast
B. The scene colors become more saturated and less contrasty
C. The scene brightness increases but colors stay the same
D. No change happens because values are invalid
Solution
Step 1: Understand colorAdjust properties set
Saturation is set to -100, which means no color (black and white). Contrast is increased to 50, making differences stronger.
Step 2: Predict visual effect on scene
The scene will look grayscale with stronger contrast between light and dark areas.
Final Answer:
The scene colors become fully desaturated with increased contrast -> Option A
Hint: Negative saturation means grayscale; contrast >0 means stronger contrast [OK]
Common Mistakes:
Thinking negative saturation increases color
Confusing contrast with brightness
Assuming no effect from these values
4. You wrote this code to enable Bloom but it doesn't show any effect:
var volume = GetComponent<Volume>();
if (volume.profile.TryGet<Bloom>(out var bloom)) {
bloom.enabled.value = true;
}
What is the likely problem?
medium
A. You need to set bloom.intensity.value to a positive number
B. TryGet is incorrect; use GetComponent instead
C. Bloom effect must be added to the camera, not the volume
D. You should set bloom.active = true, not bloom.enabled.value
Solution
Step 1: Check how Bloom is enabled
Bloom is enabled by setting bloom.active = true (Bloom has no 'enabled' property).
Step 2: Identify missing or wrong property
The code sets non-existent bloom.enabled.value, so Bloom is not enabled (compile error).
Step 3: Understand correct fix
Use bloom.active = true instead, as stated in You should set bloom.active = true, not bloom.enabled.value. (Also ensure intensity > 0 for visibility.)
Final Answer:
You should set bloom.active = true, not bloom.enabled.value -> Option D
Quick Check:
Bloom uses active, not enabled [OK]
Hint: Use bloom.active = true, not enabled.value [OK]
Common Mistakes:
Not setting intensity value
Confusing enabled with active property
Trying to add bloom to camera instead of volume
5. You want to create a night scene with a blue tint and soft glowing street lights using Unity's Volume system. Which combination of settings achieves this best?
hard
A. Set Color Adjustments temperature to 50, saturation to 50; disable Bloom
B. Set Color Adjustments contrast to 100; enable Bloom with intensity 0
C. Set Color Adjustments temperature to -50, saturation to -20; enable Bloom with intensity 1.5
D. Set Color Adjustments exposure to 5; disable Bloom
Solution
Step 1: Choose color adjustments for blue tint and mood
Lower temperature (negative) adds blue tint; slight desaturation (-20) softens colors for night mood.
Step 2: Enable Bloom for glowing street lights
Bloom intensity 1.5 adds soft glow around bright lights, perfect for street lamps.
Step 3: Evaluate other options
Set Color Adjustments temperature to 50, saturation to 50; disable Bloom warms colors (wrong for night), disables bloom; C sets bloom intensity 0 (no glow); D overexposes scene and disables bloom.
Final Answer:
Set Color Adjustments temperature to -50, saturation to -20; enable Bloom with intensity 1.5 -> Option C
Quick Check:
Blue tint + bloom glow = night scene effect [OK]
Hint: Blue tint = negative temperature; bloom intensity > 0 for glow [OK]
Common Mistakes:
Using positive temperature for blue tint
Setting bloom intensity to zero
Overexposing scene for night effect
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.