Tags: unity, lighting, post-processing, bloom, ssao, color-grading, directional-light, point-light, game-dev Last updated: 2026-06-27

Lighting & Post-Processing Cheatsheet

Quick Reference

Light TypeUse CasePerformance
DirectionalSun/moon, global illuminationCheap
PointBulbs, torches, explosionsMedium
SpotFlashlights, stage lightsMedium
Area (baked)Soft interior lightingBaked only
Emissive MaterialGlowing surfacesCheap

Light Types

Directional Light

PropertyDescription
IntensityBrightness (lux for real-world units)
Indirect MultiplierBounce light intensity
Shadow TypeNone / Hard / Soft
CookieTexture mask (cloud shadows)
Culling MaskWhich layers receive light

Point Light

PropertyDescription
RangeMaximum distance (in metres)
IntensityBrightness
Shadow TypeNone / Hard / Soft
Render ModeAuto / Important / Not Important
CookieCubemap mask

Spot Light

PropertyDescription
RangeMaximum distance
Spot AngleCone angle (1–179°)
Inner/Outer AngleFalloff region
Shadow TypeNone / Hard / Soft

Shadow Settings

SettingEffectCost
No ShadowsNo shadow map renderedFree
Hard ShadowsSharp shadow edgesMedium
Soft ShadowsRealistic penumbraHigh
Shadow ResolutionLow/Med/High/Very High/UltraMemory
Shadow DistanceMax draw distancePerf gain if reduced
Shadow Cascades0/2/4 splits (directional only)2 = good balance

Light Modes

ModeDescriptionWhen
RealtimeFull dynamic lighting, shadowsMoving lights, player interaction
MixedBaked indirect, dynamic directStatic scenes with dynamic objects
BakedPre-computed lightmaps onlyStatic scenes (best performance)
Light light = GetComponent<Light>();
light.lightmapBakeType = LightmapBakeType.Mixed;
light.shadows = LightShadows.Soft;
light.shadowStrength = 0.8f;

Post-Processing Stack

Setup

  1. Install Post Processing package (Package Manager).
  2. Add Post-process Layer to Camera.
  3. Add Post-process Volume to scene (Global or local).
  4. Add overrides to Volume profile.

Bloom

PropertyEffect
IntensityGlow strength
ThresholdBrightness cutoff for bloom
Soft KneeSmooth threshold transition
ScatterBloom spread (anamorphic flares)
ClampCap max brightness

Color Grading

PropertyEffect
TemperatureWarm (yellow) ↔ Cool (blue)
TintGreen ↔ Magenta
Post-ExposureHDR exposure after lighting
ContrastMidtone contrast
SaturationColour intensity
Lift/Gamma/GainShadows / Midtones / Highlights
ColorAdjustments ca;
ca.postExposure.value = 1.2f;
ca.contrast.value = 10f;
ca.saturation.value = 5f;

SSAO (Screen Space Ambient Occlusion)

PropertyEffect
IntensityShadow strength in crevices
RadiusSample radius
QualitySampling precision
ColorTint AO color (usually dark)
Direct Lighting StrengthAO on direct-lit surfaces

Vignette

PropertyEffect
IntensityEdge darkening strength
SmoothnessBlend width
RoundedCircular vs screen-shaped
ColorTint vignette (black is default)

Motion Blur

PropertyEffect
Shutter AngleBlur length (0–360°)
Sample CountQuality (higher = less noise)
IntensityBlend strength

Depth of Field

PropertyEffect
Focus DistanceIn-focus depth
ApertureBlur intensity (f-stop)
Focal LengthZoom (mm)
Max Blur SizeQuality cap

Global Volume Setup (Code)

Volume volume = GetComponent<Volume>();
VolumeProfile profile = volume.profile;

if (profile.TryGet(out Bloom bloom))
    bloom.intensity.value = 1f;

if (profile.TryGet(out ColorAdjustments grading))
    grading.saturation.value = 10f;

if (profile.TryGet(out Vignette vignette))
    vignette.intensity.value = 0.3f;

Performance Tips

TipImpact
Limit shadow-casting lights to 1–3High
Use Baked mode for static lightingHigh
Reduce shadow resolution on Point/Spot lightsMedium
Disable SSAO on low/mobileMedium
Use 2 shadow cascades instead of 4Medium
Limit realtime area lights to 0High
Disable motion blur on mobileLow
Use LOD for post-processing on mobileMedium