PhysLight Explorer: sensibilidad espectral de cámara

Herramienta PhysLight interactiva: superpone espectros blackbody, LED, HMI o láser sobre curvas R/G/B reales, compara dos sensores y observa metamerismo. Combina con CIE 1931, Display Check, y lecciones.Curvas espectrales del proyecto abierto PhysLight, gracias a Wētā (Wētā Digital / Wētā FX), Apache-2.0.

PhysLight Explorer

Datos de lightsaber

Coloca un espectro sobre las sensibilidades R/G/B medidas de una cámara real. Misma luz, sensores distintos: eso es metamerismo.

Fuente de luz

SPD de Planck · arrastra Kelvin

Temperatura de color

5600 K
3200
5600
6500
10k
Gráfico espectral4004505005506006507001longitud de onda (nm)SPD de luzCám. RCám. GCám. B

Canon EOS R5

RGB lineal con WB

R

1.00

G

0.83

B

0.68

1.000, 0.832, 0.684

Sony ILCE-7SM3

RGB lineal con WB

R

1.00

G

0.86

B

0.71

1.000, 0.855, 0.709

Humano (CIE 1931)

P3

Lo que un observador estándar reportaría como el color de esta SPD; las cámaras rara vez coinciden exactamente.

ColorChecker Macbeth bajo esta luz

24 parches · Ohta 1997

Cuadros anidados como el gráfico de PhysLight: exterior = respuesta base, interior = comparación. Mismo parche / misma luz: los cambios de color son metamerismo (o cámara vs CIE).

Exterior · Cám. A · EOS R5Interior · Cám. B · ILCE-7SM3

Exportar matriz y LUT 3D

.nk
.cube

Matriz 3×3 por mínimos cuadrados desde RGB de Cámara A → destino sobre los 24 parches del ColorChecker bajo el iluminante actual. El Δ por parche muestra dónde falla una transformación lineal; el .cube opcional añade un residuo IDW para que los colores del gráfico se acerquen más que con la matriz sola. Educativo: no es un perfil de cámara de laboratorio.

0.5914 0.0371 0.1577
0.2339 0.8134 -0.2338
0.0475 -0.3003 1.3613

Residuo rel. medio: 1.6% · peor: 5.6% · EOS R5 → CIE XYZ (rel. Y) · 5600 K blackbody

Residuo por parche (tras la 3×3)

Mapa de calor = error relativo % en cada parche del ColorChecker (más oscuro / rojizo = mayor fallo del ajuste lineal).

#ParcheRel %|Δ| mediaΔ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
Vista previa del script de Nuke
# 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"
}

LUT 3D (.cube)

17³

Retícula Adobe/IRIDAS (R varía más rápido). El dominio cubre las muestras del ajuste (0 → máx. src). El modo con residuo es más ajustado en el gráfico; solo matriz es una horneada lineal exacta de la 3×3.

Vista previa de la cabecera de .cube (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
Gracias a Wētā (Wētā Digital / Wētā FX) por medir estas curvas espectrales de cámara con el «lightsaber» de PhysLight y publicarlas como código abierto. Fuente: github.com/wetadigital/physlight (data/camera), Licencia Apache 2.0. Espectros del ColorChecker: Ohta (1997) / ISO 17321-1. Las curvas se reempaquetan para esta herramienta; consulta LICENSE/ATTRIBUTION incluidos en el repositorio. La interfaz del explorador © CompStart. Uso educativo, no para producción crítica de color. TAL CUAL, sin garantía.