CompStart

ProAulasCursosElementosSoftware

PhysLight Explorer: sensibilidade espectral de câmera

Ferramenta PhysLight interativa: coloque espectros blackbody, LED, HMI ou laser em curvas R/G/B reais, compare dois sensores e veja metamerismo. Combina com CIE 1931, Display Check, e aulas. Spectral curves from the open PhysLight project — thanks to Wētā (Wētā Digital / Wētā FX), Apache-2.0.

PhysLight Explorer

Lightsaber data

Drop a spectrum on a real camera's measured R/G/B sensitivities. Same light, different sensors — that's metamerism.

Light source

Planck SPD · drag Kelvin

Colour temperature

5600 K
3200
5600
6500
10k
Spectrum chart4004505005506006507001wavelength (nm)Light SPDCam RCam GCam B

Canon EOS R5

WB linear RGB

R

1.00

G

0.83

B

0.68

1.000, 0.832, 0.684

Sony ILCE-7SM3

WB linear RGB

R

1.00

G

0.86

B

0.71

1.000, 0.855, 0.709

Human (CIE 1931)

P3

What a standard observer would report as the colour of this SPD — cameras rarely match this exactly.

Macbeth ColorChecker under this light

24 patches · Ohta 1997

Nested squares like PhysLight's chart: outer = base response, inset = compare. Same patch / same light — colour shifts are metamerism (or camera vs CIE).

Outer · Cam A · EOS R5Inset · Cam B · ILCE-7SM3

Export matrix & 3D LUT

.nk
.cube

Least-squares 3×3 from Camera A RGB → target on the 24 ColorChecker patches under the current illuminant. Per-patch Δ shows where a linear map fails; the optional .cube adds an IDW residual so on-chart colours land closer than matrix alone. Educational — not a lab camera profile.

0.5914 0.0371 0.1577
0.2339 0.8134 -0.2338
0.0475 -0.3003 1.3613

Mean rel residual: 1.6% · worst: 5.6% · EOS R5 → CIE XYZ (rel. Y) · 5600 K blackbody

Per-patch residual (after 3×3)

Heatmap = relative error % on each ColorChecker patch (darker / redder = larger linear-fit miss).

1
2
2
1
0
3
1
2
2
3
1
2
3
1
6
0
1
4
1
1
1
1
1
1
#PatchRel %|Δ| meanΔRΔGΔB
16Red5.60.0137-0.0145-0.0124-0.0141
19Cyan4.00.0159-0.0124-0.0155-0.0198
14Blue3.10.0092+0.0076+0.0085+0.0116
7Bluish green2.80.0135-0.0111-0.0129-0.0165
11Purple2.60.0039+0.0016+0.0040+0.0061
3Light skin2.30.0105-0.0081-0.0104-0.0131
10Moderate red2.20.0073-0.0051-0.0071-0.0098
9Purplish blue2.00.0076+0.0058+0.0070+0.0099
13Orange yellow1.70.0092+0.0093+0.0087+0.0095
4Blue sky1.60.0054+0.0049+0.0051+0.0063
5Foliage1.40.0020+0.0005+0.0022+0.0033
18Magenta1.20.0043-0.0070-0.0035-0.0025
24Neutral 3.51.00.0010+0.0009+0.0009+0.0013
25Black1.00.0004+0.0003+0.0003+0.0005
8Orange0.90.0039+0.0055+0.0032+0.0031
23Neutral 50.90.0020+0.0019+0.0018+0.0024
22Neutral 6.50.90.0035+0.0033+0.0031+0.0039
15Green0.90.0022-0.0018+0.0016+0.0034
21Neutral 80.80.0050+0.0049+0.0048+0.0053
2Dark skin0.70.0010-0.0011-0.0010-0.0008
12Yellow green0.50.0025-0.0015+0.0018+0.0043
20White0.50.0051+0.0055+0.0052+0.0047
6Blue flower0.20.0010-0.0010+0.0003+0.0018
17Yellow0.20.0014-0.0016-0.0016-0.0009
Preview Nuke script
# PhysLight Explorer → Nuke ColorMatrix
# Educational fit from measured camera spectral sensitivities × ColorChecker reflectances.
# Not a production camera profile. Validate before use.
# Fit under 5600 K blackbody; daylight-WB camera RGB → CIE XYZ (rel. Y); ColorChecker Classic (Ohta 1997) 24 patches
ColorMatrix {
 matrix {
		{ 0.59141067 0.03706286 0.15765617 }
		{ 0.23390597 0.81338272 -0.23382498 }
		{ 0.04753048 -0.30033174 1.36129747 }
 }
 name PhysLight_Canon_EOS_R5_to_XYZ
 label "EOS R5 → CIE XYZ (rel. Y) · 5600 K blackbody"
}

3D LUT (.cube)

17³

Adobe/IRIDAS lattice (R varies fastest). Domain covers the fit samples (0 → max src). Residual mode is tighter on the chart; matrix-only is an exact linear bake of the 3×3.

Preview .cube header (PhysLight_Canon_EOS_R5_to_XYZ_mat+res_17.cube)
# PhysLight Explorer → 3D LUT (.cube)
# Educational fit from measured camera spectral sensitivities × ColorChecker.
# Not a production camera profile. Validate before use.
# Order: red varies fastest (Adobe/IRIDAS).
# Fit under 5600 K blackbody; daylight-WB camera RGB → CIE XYZ (rel. Y); ColorChecker Classic (Ohta 1997) 24 patches
# Lattice = 3x3 matrix + IDW residual (fades to matrix off-chart).
# LUT_3D_SIZE 17
TITLE "PhysLight_Canon_EOS_R5_to_XYZ_mat+res_17"
DOMAIN_MIN 0.00000000 0.00000000 0.00000000
DOMAIN_MAX 1.43082121 1.43082121 1.43082121
LUT_3D_SIZE 17
0.00032601 0.00074218 0.00122484
…
# 4913 lattice lines omitted
Thanks to Wētā(Wētā Digital / Wētā FX) for measuring these camera spectral curves with the PhysLight “lightsaber” and releasing them open source. Source: github.com/wetadigital/physlight (data/camera), Apache License 2.0. ColorChecker spectra: Ohta (1997) / ISO 17321-1. Curves are repackaged for this tool; see bundled LICENSE/ATTRIBUTION in the repo. Explorer UI © CompStart — educational use, not colour-critical production. AS IS, no warranty.

CompStart

Domine efeitos visuais com técnicas de ponta.

Aprendizado

CursosLiçõesRecursos ProRecursosSoftware

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLight

Empresa

InstructorMissãoImpressumPrivacidadeTermos

Projetos

OCIO.ccDerekVFXReact CIE 1931Nuke Tools

Follow

YouTubeInstagramTikTokLinkedInContato

© 2026 CompStart. Todos os direitos reservados.