In short
Lighting, rendering and shading are the stages that turn geometry and textures into a final image: lights describe where energy comes from, shaders describe how a surface responds to it, and the renderer solves the light transport and writes pixels. They decide whether a shot reads as real, and they consume most of a studio's compute budget, so they are examined heavily in B.Sc/B.Des animation and VFX syllabi and tested in placement rounds at Indian studios and game companies (DNEG Mumbai, Framestore Mumbai, Prime Focus, Redchillies.vfx, Assemblage, Green Gold, Lakshya Digital, SuperGaming, Nazara/Rockstar India; the Technicolor group - MPC and Technicolor Games Bengaluru - ceased operations in 2025). Interviews ask the physics (inverse square law, energy conservation, Fresnel), the production craft (three-point and HDRI lighting, AOVs, render budgets) and the pipeline (linear workflow, ACES, denoising, render-farm costs per frame in rupees). Game-side roles add the real-time constraint: everything must fit in a 16.67 ms frame at 60 fps.
Explained
Light: types, units and behaviour
- Light types in DCC software: *point/omni* (radiates from a point, inverse-square falloff), *spot* (cone with penumbra/cone angle), *directional/sun* (parallel rays, no falloff - distant sources), *area/quad/disc/sphere* (finite size, gives soft shadows), *dome/environment* (image-based, usually HDRI), *mesh light* (any geometry emits), *portal* (guides sampling through windows).
- Inverse square law: intensity from a point source falls as 1/d². Double the distance, quarter the illumination (two stops darker). Area lights obey it only beyond roughly 3-5× their own size; very close up they behave more like flat panels.
- Soft vs hard shadow: softness depends on the *apparent* size of the source (its angular diameter), not its power. The sun is huge but far, so its shadow is nearly hard (about 0.53° angular size); a 1 m softbox at 1 m is very soft.
- Photometric units: luminous flux in lumen (lm), luminous intensity in candela (cd = lm/sr), illuminance in lux (lm/m²), luminance in cd/m² (nit). Radiometric equivalents: radiant flux (W), radiance (W/m²·sr). Physically based renderers (Arnold, V-Ray, Cycles, Redshift, Karma) accept real-world photometric input, so a lighting setup can be matched to a measured plate.
- Colour temperature in kelvin: candle about 1,900 K, tungsten 3,200 K, daylight 5,500-6,500 K, overcast/shade 7,000-9,000 K. Lower K is warmer (more red). White balance is the inverse correction applied in camera or in the comp.
- Exposure: one stop = factor of 2 in light. Camera exposure in a renderer is set by f-number, shutter and ISO exactly as in photography; EV changes scale the whole image, not the lighting ratios.
- Falloff/decay modes: none, linear, quadratic (physical). Non-physical decay is a cheat still used in stylised work and in real-time lights with a hard radius for culling.
Cinematic lighting craft
- Three-point lighting: *key* (main, sets the exposure and the shadow direction, usually 30-45° off camera axis and above eye line), *fill* (opens the shadow side, soft, low intensity), *rim/back/kicker* (separates subject from background).
- Key-to-fill ratio defines mood: 2:1 flat/commercial, 4:1 standard dramatic, 8:1 or more low-key/noir. High-key = bright, low contrast; low-key = dark, high contrast.
- Motivation: every light should be explainable by something in the frame or just outside it (window, lamp, fire, sky bounce). Unmotivated lights are the commonest critique in a lighting reel review.
- Practical lights are the lamps visible in shot; they are usually low-contribution and supported by off-screen cheats.
- Image-based lighting (IBL): a 32-bit HDRI latitude-longitude map on a dome light supplies ambient, sky and reflections in one. Shot on set with bracketed exposures plus a chrome ball and a grey ball (18% diffuse reference) for calibration; a Macbeth/colour chart is shot for colour matching.
- Lighting for look development: test a model against a neutral grey studio, an outdoor HDRI and a dark/backlit setup to prove the shader holds up everywhere.
- Light linking / light groups: restricting a light to certain objects, or writing each light to its own AOV so the comp can rebalance without a re-render - standard studio practice.
Shading models and PBR
- Lambert (ideal diffuse): reflected radiance is independent of view direction; brightness ∝ cos θ (N·L). Cheap, no specular.
- Phong: adds a specular lobe (R·V)n; Blinn-Phong uses the halfway vector (N·H)n - cheaper and better shaped. Both are empirical, not energy-conserving.
- Cook-Torrance / microfacet BRDF: the physically based family. A surface is modelled as microscopic mirrors; the specular term is D·F·G/(4(N·L)(N·V)) where D is the normal distribution (GGX/Trowbridge-Reitz is the industry default), F the Fresnel term, G the geometry/shadow-masking term.
- BRDF (bidirectional reflectance distribution function): f(ωi, ωo) = ratio of outgoing radiance to incoming irradiance. Must satisfy reciprocity (swap directions, same value) and energy conservation (integral over the hemisphere ≤ 1).
- Fresnel effect: reflectivity rises towards grazing angles - every dielectric becomes mirror-like at the edge. Schlick's approximation is the standard cheap form. Typical normal-incidence reflectance F0: water about 0.02, plastic/skin 0.04-0.05, glass 0.04, diamond 0.17, metals 0.5-0.95 and coloured.
- Metallic-roughness workflow (glTF, Unreal, Substance): base colour, metallic (0 or 1 in practice), roughness, normal, AO. Specular-glossiness workflow (older, V-Ray/Maya legacy): diffuse, specular colour, glossiness. Metals have black diffuse and tinted specular; dielectrics have coloured diffuse and near-white specular.
- Layered/uber shaders: Autodesk Standard Surface, Arnold aiStandardSurface, V-Ray VRayMtl, Redshift Standard Material, Principled BSDF, OpenPBR - all combine coat, specular, metal, transmission, subsurface, sheen and emission layers with energy compensation.
- Specials: SSS (subsurface scattering) for skin, wax, marble, milk - random-walk or diffusion based, controlled by scatter colour and mean free path; transmission/refraction with IOR (water 1.33, glass 1.5, diamond 2.42) and absorption by Beer-Lambert; thin film for bubbles; anisotropy for brushed metal and hair; hair/fur BSDF (Marschner R, TRT, TT lobes); volume shaders for smoke and fog using density, scattering and anisotropy g (Henyey-Greenstein).
- Shader authoring: node graphs (Hypershade, Shader Graph, Blender nodes), OSL for offline renderers, MaterialX/OpenPBR/USD for interchange, and HLSL/GLSL real-time shader stages - vertex, (hull/domain), geometry, fragment/pixel, plus compute.
Rendering algorithms and global illumination
- Rasterization: project triangles to screen space, interpolate attributes, shade fragments, resolve visibility with a Z-buffer. Very fast, O(geometry), used in all real-time engines. No native GI, reflections or refraction.
- Ray tracing: cast a ray per pixel, intersect the scene, shade at the hit, spawn secondary rays (shadow, reflection, refraction). Whitted-style = direct light plus perfect mirror/glass only.
- Path tracing: Monte Carlo solution of the rendering equation; rays bounce randomly with importance sampling and Russian roulette termination. Unbiased, converges to ground truth, noise falls as 1/√N - hence four times the samples for half the noise. The default in Arnold, Cycles, Redshift, RenderMan RIS, Karma, V-Ray GPU.
- Other GI methods: irradiance cache/photon mapping/light cache (biased, faster, flicker-prone in animation), radiosity (diffuse-only finite-element, historic), VPL/instant radiosity, and in games lightmaps (baked, static), light probes/spherical harmonics for dynamic objects, SSAO/SSGI, voxel GI, Lumen (software/hardware ray-traced GI in UE5) and RTX hardware ray tracing.
- Sampling and noise: camera AA samples × per-ray depths and light samples. Clamp indirect, use adaptive sampling, blue-noise/low-discrepancy sequences (Sobol), and denoisers (OptiX, OIDN, Altus) - denoising has cut studio sample counts several-fold but can smear fine detail and cause temporal flicker if applied per frame without a temporal pass.
- Ray depths: diffuse, specular, transmission, volume and total depth caps. Glass needs transmission depth of about 8-16; too low gives black glass.
- Shadows: ray-traced shadows (sampled area lights), shadow maps (depth from the light - bias/peter-panning and aliasing issues; PCF, cascaded shadow maps for sun, PCSS for soft), contact shadows in real time.
- Acceleration: BVH/kd-tree for ray tracing; instancing, LODs, frustum/occlusion culling for raster; deferred shading (G-buffer) for many lights, forward+/clustered when MSAA and transparency matter.
- Scene scale and camera: focal length, sensor size, f-stop (depth of field), shutter angle (motion blur - 180° = half frame), and sub-frame/deformation motion blur steps.
Render pipeline, output and management
- Pre-render: geometry caches (Alembic/USD), displacement subdivision, texture tiling via .tx/.tex mip-mapped files (never raw PNG/JPEG at render time), scene scale check, colour-space tagging of every texture.
- Linear workflow: render and composite in scene-linear float; sRGB/Rec.709 textures must be decoded to linear on input (sRGB has a transfer function with a 2.4 exponent and a linear toe, approximately gamma 2.2); data maps (roughness, normal, displacement, masks) must be tagged raw/non-colour or the render will be wrong.
- ACES / OCIO colour management: ACEScg as the rendering/working space, ACEScc or ACEScct for grading, an ACES output transform (RRT+ODT) to sRGB, Rec.709 or P3 for display. OCIO config drives Maya, Nuke, Houdini, Blender and Resolve consistently. ACES 2.0 (released 2024-25) revises the output transforms; many Indian facilities are still on ACES 1.x per client spec.
- AOVs / render passes: beauty, diffuse/specular/transmission/SSS/emission split into direct and indirect, plus Z-depth, normal, position (P), motion vectors, cryptomatte IDs, ambient occlusion, light-group AOVs. The sum of the light AOVs should equal the beauty - that is the comp's sanity check.
- File formats: OpenEXR (16-bit half or 32-bit float, multi-channel, DWAA/ZIP compression) is the only acceptable render output; EXR multipart for AOVs; 8-bit formats only for final delivery or texture source.
- Renderers in Indian studios: Arnold and RenderMan on features/episodics, V-Ray and Corona on arch-viz and ads, Redshift and Octane on GPU-heavy commercials and motion graphics, Cycles/EEVEE on indie and education, Unreal and Unity for games, virtual production and real-time previs.
- Farm and cost: jobs submitted via Deadline/Tractor/OpenCue, chunked by frame, with licence counts and per-frame time budgets. Studios quote in core-hours; cloud bursts are billed per hour and attract GST at 18% on the service invoice.
- Review discipline: render in passes at low samples for dailies, use region/IPR renders for look dev, lock lighting before high-sample finals, and keep a render log of time per frame.
Real-time versus offline
- Frame budget: 16.67 ms at 60 fps, 33.3 ms at 30 fps; a film frame may take 1-20 core-hours. Every real-time technique is an approximation chosen to fit the budget.
- Baking: lightmaps, reflection probes and AO baked offline, sampled at runtime; good for static geometry, wrong for anything that moves.
- Dynamic range and tone mapping: HDR rendering then tone mapping (Reinhard, ACES filmic, AgX) and bloom; LUTs for look.
- Anti-aliasing: MSAA (raster, geometric edges), FXAA/SMAA (post), TAA (temporal, standard in engines, causes ghosting), and upscalers DLSS/FSR/XeSS/TSR.
- Mobile constraints (dominant in the Indian games market): tile-based GPUs, avoid full-screen post and dependent texture reads, keep draw calls and overdraw low, use half precision, compress textures with ASTC/ETC2.
Key points
- Rendering equation - outgoing radiance = emitted + integral of incoming radiance × BRDF × cos θ; every renderer is an approximate solver of it.
- Inverse square law - point-source illuminance ∝ 1/d²; doubling distance costs two stops.
- Shadow softness - set by the source's apparent (angular) size, never by its intensity.
- Three-point lighting - key sets exposure and shadow direction, fill controls contrast ratio, rim gives separation.
- Key:fill ratio - 2:1 flat, 4:1 dramatic, 8:1+ low-key.
- Colour temperature - lower kelvin is warmer; 3,200 K tungsten vs 5,600 K daylight is the classic mixed-light problem.
- HDRI dome light - 32-bit environment giving ambient, key and reflections at once; calibrated on set with chrome and grey balls.
- Lambert vs Phong vs GGX microfacet - view-independent diffuse, empirical specular, physically based specular with D·F·G.
- BRDF rules - reciprocity and energy conservation; break them and the render gains or loses energy.
- Fresnel/Schlick - reflectance rises to 1 at grazing angles; F0 is about 0.04 for dielectrics, 0.5-0.95 and tinted for metals.
- Metallic-roughness - metals: black base diffuse, tinted specular; dielectrics: coloured diffuse, white specular, F0 fixed.
- Rasterization vs ray tracing - raster is fast and view-dependent with a Z-buffer; ray tracing gives true reflections, refraction and GI at higher cost.
- Path tracing noise - error ∝ 1/√N, so 4× samples halves noise; denoisers substitute for samples.
- Ray depth limits - low transmission depth makes glass black; low diffuse depth darkens interiors.
- Linear workflow - render in scene-linear; tag colour textures sRGB and data textures raw.
- AOVs - direct/indirect splits, Z, normals, motion vectors and cryptomatte; light AOVs must sum to the beauty.
- OpenEXR - half/float multi-channel is the only correct render output; 8-bit clips highlights.
- Real-time budget - 16.67 ms per frame at 60 fps forces baking, probes, TAA and upscaling.
Formulas and examples
Lo, Le, Li = outgoing, emitted, incoming radiance (W/m²·sr); fr = BRDF (1/sr); n·ωi = cosine of incidence; Ω = hemisphere.
Example 1 - inverse square law and exposure. A point light gives 800 lux on a character at 2 m. The character is moved to 5 m.
- I = E·d² = 800 × 2² = 3,200 cd.
- New illuminance E = 3,200 / 5² = 128 lux.
- Change in stops = log2(800/128) = log2(6.25) = 2.64 stops darker.
- To restore 800 lux, intensity must rise by 6.25× → 20,000 cd.
Example 2 - Fresnel F0 from IOR, and the metal case. Glass with n = 1.5, viewed head-on and at grazing 80°.
- F0 = ((1.5 − 1)/(1.5 + 1))² = (0.5/2.5)² = 0.2² = 0.04 (4% reflective face-on).
- At θ = 80°, cos θ = 0.1736; (1 − 0.1736)5 = 0.82645. 0.8264² = 0.6829; 0.8264⁴ = 0.6829² = 0.4664; × 0.8264 = 0.3855.
- F = 0.04 + 0.96 × 0.3855 = 0.04 + 0.3701 = 0.410 — 41% reflective at the edge, over ten times the face-on value. This is why an untextured sphere with correct Fresnel already reads as a real object.
Example 3 - path-tracing samples and farm time in rupees. A shot renders with noticeable noise at 256 samples per pixel, 4 minutes per frame per machine.
- Noise ∝ 1/√N, so halving noise needs 4× samples → 1,024 spp, about 16 min/frame (time is roughly linear in samples).
- 120-frame shot on a 10-machine farm: 120 × 16 = 1,920 machine-minutes = 32 machine-hours → 3.2 h wall clock.
- At an internal charge of ₹40 per machine-hour: 32 × 40 = ₹1,280 of compute for the shot; a cloud burst invoiced at ₹40/h would also carry 18% GST → ₹1,280 + ₹230.40 = ₹1,510.40.
- With a denoiser holding quality at 256 spp: 8 machine-hours → ₹320 (plus GST ₹57.60 if invoiced) — a 4× saving, which is why denoising is standard.
Example 4 - total internal reflection in a water surface. Light inside water (n1 = 1.33) hitting air (n2 = 1.0).
- θc = arcsin(1.0/1.33) = arcsin(0.7519) = 48.8°.
- Beyond 48.8° the ray reflects entirely back into the water — the mirror-like underside of a pool surface. If the renderer's transmission ray depth is set to 2, these internal bounces terminate early and the water renders dark.
Example 5 - real-time frame budget. A mobile game targets 60 fps.
- Budget = 1,000/60 = 16.67 ms per frame. If geometry + shadows take 9 ms and post 4 ms, only 3.67 ms remains for lighting and material shading.
- At 30 fps the budget is 33.3 ms — doubling the headroom, which is why many Indian mobile titles ship capped at 30 or 40 fps on low-end devices.
| Rasterization | Ray / path tracing | |
|---|---|---|
| Visibility | Z-buffer, project triangles | Ray-scene intersection via BVH |
| Reflections | Screen-space, probes, cubemaps | True, including off-screen |
| Global illumination | Baked lightmaps, probes, SSGI | Native, multi-bounce |
| Noise | None (aliasing instead) | Monte Carlo noise, needs samples |
| Cost per frame | Milliseconds | Minutes to hours |
| Typical use | Games, previs, virtual production | Features, episodics, ads, arch-viz |
| Shading model | Energy conserving | Specular form | Cost | Use today |
|---|---|---|---|---|
| Lambert | Diffuse only | None | Lowest | Matte, previs, lightmap diffuse |
| Phong / Blinn-Phong | No | (R·V)n / (N·H)n | Low | Legacy, stylised, mobile |
| Cook-Torrance GGX | Yes | D·F·G/(4(N·L)(N·V)) | Medium | PBR standard everywhere |
| Layered uber (Standard Surface/OpenPBR) | Yes, with compensation | Multi-lobe + coat + SSS | High | Film and episodic look dev |
Where it is used
- VFX and animated features: lighting and look-dev artists at DNEG, Framestore, Prime Focus/DNEG India, Redchillies.vfx, Assemblage, Phantom FX - matching CG to live-action plates using HDRIs, chrome/grey balls and ACES, delivering multi-channel EXRs to Nuke comp.
- Games: technical artists and graphics programmers at Lakshya Digital (Keywords), Ubisoft Pune/Mumbai, Rockstar India (formerly Dhruva Interactive), SuperGaming, Nazara - lightmap baking, shader graphs, Lumen/probe setup, mobile shader cost budgets.
- Advertising, product and arch-viz: V-Ray/Corona/Redshift studios doing Indian automotive, FMCG packaging, jewellery and real-estate walkthroughs, where glass, metal, gemstone dispersion and SSS shaders dominate.
- Broadcast, episodics and motion graphics: Green Gold, Cosmos-Maya, Toonz and Chennai/Hyderabad episodic studios on tight per-frame budgets - simplified GI, baked AO, strict render-time caps.
- Virtual production and events: LED-volume stages (Mumbai, Hyderabad) running Unreal in real time; the LED wall itself becomes the key light, so colour management and nit levels are production-critical.
- Roles and tools: lighting TD, look-dev/shading artist, render wrangler, pipeline TD, graphics engineer; Maya/Houdini/Blender/3ds Max with Arnold, RenderMan, V-Ray, Redshift, Karma, Cycles, plus Nuke, Substance, Unreal, Unity, Deadline and OCIO/ACES configs.
Interview questions
- Q: What makes a shadow soft? A: The apparent (angular) size of the light source as seen from the surface - a large or close source gives a wide penumbra. Intensity has no effect on softness.
- Q: State the rendering equation in words. A: Radiance leaving a point in a direction equals the radiance it emits plus the hemispherical integral of incoming radiance weighted by the BRDF and the cosine of the incidence angle.
- Q: Difference between Phong and a GGX microfacet specular? A: Phong is an empirical cosine-power lobe with no energy conservation; GGX models a statistical distribution of microfacets with Fresnel and geometric shadowing, so it conserves energy and gives realistic wide tails on rough surfaces.
- Q: Why does the metallic channel need to be 0 or 1? A: It is a material classifier, not a blend slider - metals have no diffuse and tinted specular, dielectrics have coloured diffuse and about 4% white specular. Mid values produce physically impossible surfaces except as a texture transition pixel.
- Q: What is the Fresnel effect and why does every shader need it? A: Reflectance increases with grazing angle, reaching nearly 1 at the edges; without it objects look flat and plastic because the rim reflection is missing.
- Q: Why does doubling the samples not halve the noise? A: Monte Carlo error falls as 1/√N, so noise drops by about 29% for 2× samples; halving noise needs 4× samples.
- Q: Glass renders black - what do you check? A: Transmission/refraction ray depth (raise it to 8-16), then that the surface is not single-sided with flipped normals, IOR is sensible, and interior shading/absorption is not opaque.
- Q: What is the difference between AO and GI? A: Ambient occlusion is a cheap geometric darkening of crevices with no light information; global illumination actually transports bounced light with colour and direction. AO is an approximation or an artistic multiplier, not a substitute.
- Q: Why must roughness and normal maps be tagged raw/non-colour? A: They carry data, not colour; applying an sRGB-to-linear decode changes the values and produces wrong microfacet distributions and bent normals.
- Q: What is ACEScg and why use it? A: A wide-gamut scene-linear working space for rendering and compositing; it keeps saturated bright values from clipping and gives a consistent look through a standard output transform to sRGB, Rec.709 or P3.
- Q: How do you light a CG asset into a live-action plate? A: Use the on-set HDRI on a dome light, match camera exposure and lens, validate against the chrome and 18% grey ball references, then match colour with the chart and finish the match in comp with light-group AOVs.
- Q: Deferred vs forward rendering? A: Deferred writes material attributes to a G-buffer and lights the screen once, which scales to many lights but struggles with transparency and MSAA; forward (or forward+) shades per object, handling transparency and MSAA better but costing more per light.
- Q: Why does TAA cause ghosting? A: It reuses previous frames reprojected by motion vectors; where motion vectors are missing or wrong (transparency, shadows, disocclusion), stale samples blend in as smear.
Common mistakes
- Treating lighting as a brightness problem - raising intensity instead of changing the source's size, distance or direction to fix contrast and shadow quality.
- Working or compositing in sRGB/8-bit instead of scene-linear float EXR, then wondering why highlights clip and additive blends look wrong.
- Mis-tagging texture colour spaces - colour maps left raw, or roughness/normal maps decoded as sRGB.
- Setting metallic to mid values, or giving a metal a bright diffuse base colour, which breaks the PBR energy model.
- Leaving default low ray depths, then blaming the renderer for black glass, dark interiors or missing multi-bounce light.
- Throwing samples at noise that comes from a tiny bright light, unclamped indirect fireflies or a mesh light with no importance sampling, instead of fixing the cause.
- Relying on a denoiser per frame without temporal consistency, producing boiling or flickering animation.
- Quoting a render test from one frame as the shot's cost - frames with motion blur, DOF, volumes or hero glass can be many times slower.
- Forgetting that AOVs must sum back to the beauty; a comp built on passes that do not add up cannot be graded safely.
Related topics
3D modelling, texturing and UV mapping · Rigging and character animation · Compositing and matchmoving in Nuke · Colour science and ACES pipelines · Real-time engines and game optimisation · VFX simulation: fluids, smoke and volumetrics