Skip to content

feat: color correction for studio mode - #2112

Merged
richiemcilroy merged 6 commits into
mainfrom
color-correction
Aug 11, 2026
Merged

feat: color correction for studio mode#2112
richiemcilroy merged 6 commits into
mainfrom
color-correction

Conversation

@richiemcilroy

@richiemcilroy richiemcilroy commented Aug 11, 2026

Copy link
Copy Markdown
Member

Adds per-layer color grading to the studio editor: separate grades for the screen and camera, 8 cinematic presets plus a None option, animated film grain, and 9 fine-tune sliders with a master strength control.

  • Grades run in the shared composite shader once per output pixel after motion-blur resolve, with a single uniform branch skipping everything when no grade is active, so ungraded projects render bit-identical to before.
  • A gated full-frame pass applies the screen grade to the backdrop so the padded scene reads as one graded frame; grain and vignette share one noise field and coordinate space across the background, display card, and cursor, so they stay continuous at every edge.
  • The cursor wears the screen grade by default (its pipeline blends premultiplied, so the grade lifts to straight alpha and back), with an Apply to cursor toggle for legibility.
  • Old project files and saved presets deserialize to the identity grade.

Validated: cargo check on cap-project and cap-rendering, naga validation on all three shaders, tsc and biome clean. Heavy grain inflates export bitrate as expected for noise.

Greptile Summary

The PR adds separate screen and camera color grading to the Studio editor, including presets, fine-tuning controls, cursor grading, and shared renderer shader support.

  • Adds normalized project configuration with identity defaults for older projects.
  • Applies grading across the background, display, camera, and optionally cursor pipelines.
  • Adds preset previews and editor controls for per-layer adjustments.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/desktop/src/routes/editor/colorCorrection.ts Defines identity defaults, normalization, and the available cinematic color presets.
apps/desktop/src/routes/editor/ColorCorrectionSection.tsx Adds preset selection, grain and cursor controls, and fine-tuning sliders to the editor.
crates/project/src/configuration.rs Extends persisted project configuration with backward-compatible screen and camera color grades.
crates/rendering/src/composite_frame.rs Converts project grading values into bounded shader uniforms and controls the identity fast path.
crates/rendering/src/lib.rs Integrates color-grade parameters and the full-frame background pass into preview and export rendering.
crates/rendering/src/shaders/composite-video-frame.wgsl Applies per-layer exposure, color, vignette, and grain adjustments during compositing.
crates/rendering/src/shaders/cursor.wgsl Applies the screen grade to premultiplied cursor pixels when cursor grading is enabled.

Reviews (2): Last reviewed commit: "chore: trim narration comments in color ..." | Re-trigger Greptile

Context used (3)

@cursor

cursor Bot commented Aug 11, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Comment thread apps/desktop/src/routes/editor/colorCorrection.ts Outdated
@richiemcilroy

Copy link
Copy Markdown
Member Author

hey @greptileai, please re-review the PR

@richiemcilroy
richiemcilroy merged commit 421ee7c into main Aug 11, 2026
26 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant