Skip to content
BoWen Chai's Notes
Go back

Blender 5 Film Flash, Part 2: Iterate Lighting in Real Time

Edit page

Blender 5 film-flash series: 1 · Place and shape the light · 2 · Iterate lighting in real time · 3 · Meter and match the camera · 4 · Build and load the background · 5 · Style materials and the film look

This lesson begins after the model, camera, and first flash already exist. The working shot is a Fujifilm GW690III-style 6×9 composition on 120 film at EI 80. Keep the camera profile and the chosen real-camera exposure fixed. The goal is to move a virtual flash, understand the change within seconds, and spend slow render time only on promising setups.

If the project uses the 135, 4×5, or 8×10 preset from Part 3 instead, keep that selected camera, Sensor Width, focal length, and output ratio fixed throughout the same comparison. A format change is a new camera test, not a lighting variant.

“Real time” here means interactive approximation, not an exposure guarantee. EEVEE is a raster renderer designed for speed. Cycles traces light paths and is the checkpoint for bounce, transmission, subsurface skin, and difficult reflections. Neither engine knows the sensitometry of the film, the t.1 duration of the strobe, the lab process, or the scanner. The final real set still needs a flash meter and a test frame.

The result to build

Build one workspace with:

First ensure every comparison uses the same camera, World, color management, pose, and display size.

1. Freeze a trustworthy baseline

Open the Part 1 shot and save a working copy. Confirm real scale, the GW690III camera profile, and flash distance in metres. Use EI 80 · f/8 · 1/125 s as this exercise’s fixed reference; Part 3 handles metering.

Continue the Part 1 collection structure rather than starting a second naming scheme:

SHOT_01
├── CAMERA
├── SUBJECT
├── LIGHTS_FLASH
│   ├── FLASH_A
│   ├── FLASH_B
│   └── FLASH_C
├── LIGHTS_AMBIENT
├── GRIP_FLAGS
├── BACKGROUND
└── CALIBRATION

Set the Outliner to View Layer display mode. Use each candidate collection’s Exclude from View Layer checkbox as the solo switch; unlike a viewport eye or monitor toggle, exclusion also keeps an unwanted light out of F12. Names such as Flash_Key_45L and Ambient_Window are more useful than Area.003.

Set a fixed viewing baseline under Render Properties → Color Management:

PropertyStarting valueReason
View TransformAgXHandles a broad range of scene-linear brightness without abrupt highlight clipping
LookMedium High ContrastUses a named, repeatable AgX look; never change it during an A/B test
Exposure0.0Keeps one fixed display reference
Gamma1.0Avoids hiding a lighting error with display gamma

Color Management Exposure is global. Leave it fixed. Change Light Data Properties → Exposure for flash brightness; +1 doubles that light and -1 halves it. Editing both controls breaks the comparison.

In Object Properties → Transform, lock the camera’s Location and Rotation after composition is approved. A later camera move should create a new shot version.

2. Make the workspace behave like a set

Split the 3D Viewport vertically by dragging from an editor corner. Use the left side as the photograph and the right side as the lighting diagram.

In the left viewport, press Numpad0. Open the sidebar with N; under View → View Lock, turn Camera to View off after framing. Never judge only from the free view: an attractive shadow outside the crop may fail in the photograph.

Part 1 covers orbit, pan, framing, and constrained transforms. Add these comparison-specific actions in the right viewport:

TaskShortcut
Enter or leave Camera ViewNumpad0
Open the shading pieZ
Duplicate an independent lightShift-D
Isolate selected objects in this viewportNumpadSlash or /

Local View is per viewport and is useful for editing, but it is not a substitute for render-safe collection exclusion. If objects vanish unexpectedly, press NumpadSlash again. Return to Part 1 for the complete navigation table.

3. Know which preview you are looking at

Press Z to switch shading modes. Two modes can show materials but answer different questions.

Material Preview uses EEVEE with an HDRI by default. It quickly reveals broken skin, cloth, or shoe materials, but its studio HDRI can fill shadows that would be black on the real set.

For lighting, open the arrow beside the shading sphere and enable Scene Lights and Scene World. Still treat Material Preview as a material-oriented check.

Rendered shading uses the selected Render Engine. EEVEE becomes the interactive preview; Cycles becomes the slower validation view. Judge direction, coverage, relative contrast, and reflections here. The current Viewport Shading manual documents the Scene Lights, Scene World, Render Pass, and compositor preview controls.

Use Solid mode while moving through dense geometry, then return to Rendered. There is no value in asking the render engine to shade a scene while merely selecting an object behind a wall.

4. Configure EEVEE for the fast loop

Choose Render Properties → Render Engine → EEVEE. The following values are starting presets, not universal quality rules:

Panel and propertyFast placementRefined EEVEE check
Sampling → Viewport → Samples1664
Sampling → Viewport → Temporal ReprojectionOnOn; inspect a still frame after motion stops
Sampling → Viewport → Jittered ShadowsOffOn when soft-shadow precision matters
Sampling → Shadows → Rays14
Sampling → Shadows → Steps48
Performance → Viewport → Pixel Size if needed

Temporal Reprojection can ghost, so pause before judging an edge. Jittered Shadows cost more because the shadow map cannot be cached for each sample; enable them after placement stabilizes. Blender’s EEVEE Sampling manual explains those controls and the quality/performance trade-off.

Leave Render → Raytracing off for coarse direct-flash placement. Enable it when reflected fill and glossy surfaces matter. Screen-Trace can miss off-screen or hidden information; Light Probe mode costs less but needs suitable probes. Neither is Cycles. See EEVEE Raytracing and EEVEE Limitations.

Change one light property at a time

Select the baseline light inside FLASH_A. Duplicate it with Shift-D, then move the copies into FLASH_B and FLASH_C with M so each candidate has independent object and light data. Avoid Alt-D here: a linked duplicate shares data, so changing Power or Exposure can alter multiple variants.

Use this order for every variant:

  1. Transform: move and rotate the source while its size and output remain fixed.
  2. Coverage: for a Spot, adjust Light Data Properties → Beam Shape → Angle and Blend. Angle controls coverage, while Blend controls the cone-edge transition.
  3. Softness: adjust Point or Spot Radius, or Area Shape and Size. With Jittered Shadows, Radius affects Spot shadow softness; Angle does not. Keep Normalize on to hold total output. Use an Area-light approximation for a large modifier and confirm the physical-source result in Cycles.
  4. Output: adjust Light Exposure in half-stop or one-stop increments.
  5. Color: enable Temperature or set Color only after direction and contrast work.

Do not fix poor coverage by raising Exposure: a narrow beam still has a hot center. Do not move the camera to rescue the light; both must remain reproducible.

Include only one FLASH_* child collection in the View Layer. Name its light with the decision, for example Flash_B_45L_1.4m_80cm_plus0.5EV; its transform, dimensions, and output form a reusable preset. Save an approved .blend template and create future shoots with File → Save As.

5. Compare rather than remember

Human visual memory is poor at small brightness and shadow changes. Make controlled stills.

  1. Include only FLASH_A. Change an editor to Image Editor, select Render Result in its header, and choose Slot 1.
  2. Press F12 for a quick EEVEE render.
  3. Exclude FLASH_A, include FLASH_B, choose Slot 2, and render again.
  4. In N › Image › Render Slots, rename the slots A_30deg_hard and B_45deg_soft.
  5. Press J and Alt-J to cycle forward and backward, or press a number key for that slot.

Keep output, Color Management, and non-light variables identical. Compare catchlights, nose and chin shadows, background value, skin highlights, and shoe separation. Render Slots are in the Image Editor introduction.

Do not expect Ctrl-B to accelerate an EEVEE Rendered viewport. In Blender 5.2, viewport Render Regions apply to Cycles, not EEVEE. A region drawn in Camera View can also affect the final render; clear it with Ctrl-Alt-B when finished or disable Output Properties → Format → Render Region. Outside Camera View, the region is viewport-only. The View Regions manual documents the two contexts.

For EEVEE, use Viewport Pixel Size, fewer samples, hidden collections, or a smaller viewport. A camera render region still helps final EEVEE renders.

6. Inspect exposure without grading the answer

False Color and scopes help locate technical problems; they do not meter EI 80 film.

Choose Render Properties → Color Management → View Transform → False Color temporarily. Its heat map exposes very dark regions and high clipping. Check skin, white cloth, metallic shoes, and the calibration card, then restore AgX. A bright specular does not automatically need fixing.

After an EEVEE or Cycles render, open the Image Editor sidebar with N and inspect Scopes:

Use scopes for relative A/B checks; film latitude, development, and scanning are absent. See Displays and Views and the Image Editor scopes.

7. Validate the winner in Cycles

Under Edit → Preferences → System → Cycles Render Devices, enable a supported device. Then switch Render Properties → Render Engine to Cycles and set Device → GPU Compute. In Render Properties → Film, confirm Exposure is at its neutral brightness scale of 1.0. In Rendered shading, draw Ctrl-B around the face, upper clothing, and one important background edge. This time the viewport region really reduces the pixels Cycles must render.

Start with:

Cycles controlInteractive checkpointFinal selected frame
Sampling → Viewport → Max Samples32–64not applicable
Sampling → Render → Max Samplesnot applicable128–256 to begin
Sampling → Viewport/Render → Noise Threshold0.1–0.050.03–0.01
Sampling → Viewport → DenoiseOnnot applicable
Sampling → Render → Denoisenot applicableOn, then inspect texture carefully
DenoiserAutomaticAutomatic or OpenImageDenoise
Denoising PassesAlbedo and NormalAlbedo and Normal

Lower Noise Threshold means cleaner output and more work. Denoising helps low-sample previews but can smear pores, weave, hair, and highlights. Inspect noisy and denoised results.

Compare wall bounce, subsurface skin, glossy shoes, transparent fabric, shadow contact, and off-screen reflections. Treat a difference as diagnostic evidence; do not tune EEVEE artifacts into the plan. The Cycles Sampling and Denoising manual defines these controls.

8. Recover performance in the right order

When interaction slows, change the cheapest approximation first:

  1. Pause simulations and animation playback.
  2. Hide hair systems, unseen set dressing, volumes, and high-resolution background collections.
  3. Use Render Properties → Performance → Viewport → Pixel Size at or .
  4. Reduce viewport samples and disable EEVEE Jittered Shadows or Raytracing during movement.
  5. In EEVEE, enable Render Properties → Simplify and lower Max Subdivision, Child Particles, or Volume Resolution; disable custom Normals only for a coarse preview.
  6. After switching to Cycles, Texture Resolution and Texture Size Limit can reduce memory use. Also use a render region, viewport denoising, and GPU Compute when supported.

Simplify can alter silhouettes, fabric weave, and hair. Restore final settings before approval. See Simplify and Cycles Performance.

SymptomLikely causeFirst action
Every small move freezes for secondsToo much geometry, texture memory, subdivision, or shader compilationHide unrelated collections; enable conservative Simplify settings
EEVEE shadow crawls or leaksJitter, shadow resolution, thin/overlapping geometry, or an EEVEE limitationStop movement; give walls thickness; refine shadow settings; verify in Cycles
“Shadow buffer full”EEVEE shadow pool cannot hold the requested mapsRaise light Resolution Limit where acceptable or increase Shadow Pool only if GPU memory allows
Cycles never looks cleanToo few samples, a difficult light path, tiny bright sources, or glossy/transmission noiseRestrict the region, increase samples gradually, and inspect the material/light construction
Denoised skin looks waxyToo little information reached the denoiserRaise samples and compare the undenoised pass
Viewport differs wildly from F12Wrong shading mode, hidden HDRI, different engine, compositor preview, or Simplify still enabledRecheck Scene Lights/World, engine, Color Management, visibility, and Simplify

A repeatable 20-minute exercise

Use a timer; speed comes from a consistent decision order.

00:00–03:00 — Reset. Open the template, save a shot copy, confirm the camera locks, disable all but the baseline flash, choose AgX, and set EEVEE fast-placement values.

03:00–06:00 — Navigate. Put one viewport in Camera View and one in free view. Practice orbit, pan, Frame Selected, and constrained transforms. Return to the exact starting flash.

06:00–11:00 — Make three candidates. Duplicate independently. Create one near-axis direct flash, one 30–45° side key, and one larger/closer soft source. For each, change transform, coverage, softness, output, then color—in that order. Rename it with measurements.

11:00–14:00 — A/B. Render each candidate to a named EEVEE Render Slot. Cycle with J and reject two based on the camera frame, not the free view.

14:00–16:00 — Inspect. Use False Color briefly, then the Luma waveform and RGB parade. Restore AgX without moving Color Management Exposure.

16:00–19:00 — Validate. Switch to Cycles, draw a face-and-clothing region, enable viewport denoising, and let 32–64 samples settle. Check bounce, skin, fabric, and specular detail.

19:00–20:00 — Record and clean. Rename the winning light and collection, write its distance, size, angle, and Light Exposure in the object name or shot notes, clear Ctrl-Alt-B, restore final Simplify settings, save, and return the engine to EEVEE for the next task.

Explore in EEVEE, compare in fixed Render Slots, diagnose with scopes, and approve in Cycles. The real GW690III, EI 80 film, flash meter, and physical set must still prove the result.

Official Blender 5.2 references


Edit page
Share this post:

Previous Post
Blender 5 Film Flash, Part 3: Meter and Match the Camera
Next Post
Blender 5 Film Flash, Part 1: Place and Shape the Light