CompStart

Proレッスンコースエレメントソフトウェア

PhysLight Explorer: カメラ分光感度

インタラクティブPhysLight:blackbody・LED・HMI・レーザーのスペクトルを実測カメラR/G/B曲線に重ね、センサー比較とメタメリズムを確認。 合わせて使う CIE 1931, Display Check, と レッスン. 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

最先端の映像技術をマスターしましょう。

学習

コースレッスンProプランアセットソフトウェア

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLight

会社

Instructorミッションインプレッサムプライバシー利用規約

プロジェクト

OCIO.ccDerekVFXReact CIE 1931Nuke Tools

Follow

YouTubeInstagramTikTokLinkedInお問い合わせ

© 2026 CompStart. All rights reserved.