컬러체커로 CG와 실사 플레이트 색 맞추기: 맥베스 차트로 화이트밸런스·노출 정렬
촬영 현장에서 컬러체커를 찍어 왔다면, CG와 실사 플레이트의 색은 눈대중이 아니라 숫자로 맞출 수 있습니다. 그런데 Nuke에 차트 프레임을 띄우면 대개 여기서 막힙니다. 회색 칸에 스포이트를 찍는 데까지는 알겠습니다. 그럼 빨강·파랑 같은 색 칸은 어떻게 맞춰야 할까요?
24칸을 전부 기준값에 맞추는 방법을 찾다 보면 하루가 갑니다. 이 질문의 답은 글 후반에서 닫겠습니다. 그 전에 세 단계를 차례로 짚습니다. 1. 플레이트를 차트 기준으로 중립 보정 / 2. CG에 같은 차트를 놓고 조명 맞추기 / 3. 합성 뒤 되돌리기입니다.

컬러체커는 값이 정해진 회색 계단입니다
맥베스 차트로 불리는 ColorChecker Classic에는 24칸이 있습니다. 위 세 줄은 피부색, 하늘, 나뭇잎, 원색 같은 색 칸입니다. 맨 아랫줄 6칸은 흰색에서 검정까지 내려가는 회색 단계입니다. 이름은 왼쪽부터 white 9.5, neutral 8, neutral 6.5, neutral 5, neutral 3.5, black 2입니다.
칸마다 제조사가 공개한 측정값이 있습니다. 그래서 차트의 회색 칸은 “이 정도 회색”이 아니라 “이 값인 회색”입니다. 조명이 어떻든 이 칸이 본래 빛을 얼마나 반사하는지는 정해져 있습니다. 플레이트에서 이 칸이 다른 값으로 찍혔다면, 그 차이가 곧 그 장면의 노출과 조명 색입니다.
한 가지 챙길 점이 있습니다. X-Rite는 2014년 11월에 안료를 바꿨고, 그 전후 차트의 기준 데이터를 따로 냅니다. 차트 뒷면의 생산일을 확인해, 2014년 11월 이전·이후에 맞는 기준 데이터를 써야 합니다. 다만 회색 칸은 두 판의 차이가 작아서, 이 글의 노출·화이트밸런스 정렬에는 거의 영향이 없습니다.
기준 회색은 0.18이 아니라 약 0.19입니다
중간 회색이라고 하면 대부분 18%, 즉 선형 값 0.18을 떠올립니다. 회색공을 0.18로 칠한 셰이더도 흔합니다. 그런데 컬러체커의 neutral 5를 X-Rite 측정값에서 선형 값으로 바꾸면 약 0.19가 나옵니다. CAVE Academy의 레퍼런스 촬영 가이드도 회색공은 0.18, 맥베스 회색 칸은 0.191로 따로 잡으라고 짚습니다.
0.01 차이는 작아 보이지만 노출로는 약 0.08스톱입니다. 회색공 기준과 차트 기준을 섞으면 그만큼 어긋난 채로 시작합니다. 차트로 맞출 때는 차트 값을 목표로 씁니다. 아래 표는 X-Rite의 Lab 값을 선형 휘도로 바꾼 값입니다.
| 맨 아랫줄 칸 | 선형 값 (2014년 11월 이후) | 선형 값 (그 이전) |
|---|---|---|
| white 9.5 | 0.881 | 0.913 |
| neutral 8 | 0.590 | 0.589 |
| neutral 6.5 | 0.365 | 0.363 |
| neutral 5 | 0.191 | 0.192 |
| neutral 3.5 | 0.088 | 0.088 |
| black 2 | 0.032 | 0.031 |
기준으로는 흰 칸보다 가운데 회색 칸이 낫습니다. 흰 칸은 노출이 조금만 넘쳐도 잘립니다. 차트 측정 자료를 정리한 BabelColor도 흰 칸이 가장 중립적인 회색은 아니라며, 회색 균형에는 왼쪽에서 셋째 칸(neutral 6.5)을 자주 권한다고 적었습니다. 이 글은 0.19라는 익숙한 값 때문에 neutral 5를 기준으로 씁니다. 6.5를 써도 방법은 같습니다.
1단계: 실사 플레이트의 회색 칸을 기준값으로 옮깁니다
스포이트를 찍기 전에 두 가지를 먼저 봅니다. 첫째, 플레이트가 선형 작업 공간(예: ACEScg)으로 변환돼 있어야 합니다. Log 상태 그대로나 화면용 변환을 거친 값으로는 곱셈 비교가 성립하지 않습니다. 선형 값이 왜 필요한지는 Linear Workflow가 필요한 이유 글에 정리했습니다.
둘째, 차트 프레임 자체가 쓸 만한지 봅니다. 차트가 CG와 다른 빛을 받았다면 아무리 정확히 샘플해도 엉뚱한 기준이 됩니다. 아래 항목 중 하나라도 어긋나면 그 차트로는 노출을 정하지 않습니다.
- CG가 놓일 자리에서, 같은 조명을 받으며 찍었는가. 양지의 CG를 그늘 속 차트로 맞추면 안 됩니다.
- 본 촬영과 같은 카메라로 찍었는가. 스틸 카메라로 따로 찍은 차트는 플레이트의 기준이 되지 않습니다.
- 비스듬히 들어 번들거림(글레어)이 없는가. 손가락이 칸을 가리지 않았는가.
- 흰 칸이 잘리지 않았고 검은 칸이 0에 붙지 않았는가. 칸이 화면에서 충분히 큰가.
- 차트를 찍은 뒤 구름이 끼는 등 빛이 바뀌지 않았는가. 바뀌었다면 그 테이크의 차트가 따로 필요합니다.
차트가 주변 빛에 물든 것은 문제가 아닙니다. 잔디밭에서 찍은 차트의 아래쪽이 초록빛을 띠는 것은 실제로 그 빛이 있었다는 기록입니다. 이 물든 정도까지 CG가 따라가야 하므로, 차트를 억지로 깨끗하게 만들지 않습니다.
Nuke Grade 하나로 노출과 화이트밸런스를 함께 맞춥니다
플레이트에 Grade 노드를 겁니다. Foundry 문서에 따르면 whitepoint에 넣은 값의 픽셀은 1이 되고, gain은 1인 픽셀을 그 값으로 만듭니다. 둘을 이으면 whitepoint에 샘플 값, gain에 기준값을 넣으면 샘플 값이 기준값이 됩니다.
- whitepoint 옆 색 칸을 누르고, Viewer에서 neutral 5 칸 안쪽을 Ctrl/Cmd+Alt+Shift+드래그합니다. 영역 평균을 노드 입력에서 샘플하므로, 칸의 노이즈와 Grade 결과에 휘둘리지 않습니다.
- gain을 채널별로 풀고 세 채널 모두 0.19를 넣습니다(차트 판에 맞는 표의 값).
- lift, gamma, offset은 건드리지 않고 기본값으로 켜져 있는 black clamp는 끕니다. black clamp는 0 아래 출력을 잘라내므로, 음수값이 남으면 역보정으로 원래 값을 되돌릴 수 없습니다. 이를 끄면 이 Grade는 채널마다 숫자 하나를 곱하는 노드가 되어 3단계에서 정확히 되돌릴 수 있습니다.
예를 들어 neutral 5가 R 0.146, G 0.118, B 0.084로 찍혔다면 G가 기준보다 log2(0.19 ÷ 0.118) ≈ 0.69스톱 어둡습니다. R이 G보다 크고 B가 작으니 따뜻한 빛입니다. Grade는 채널마다 약 1.3, 1.6, 2.3을 곱해 이 칸을 0.19 회색으로 만듭니다. 아래 계산기에 내 샘플 값을 넣으면 같은 숫자를 바로 볼 수 있습니다.
맞췄는지는 다른 회색 칸으로 확인합니다. neutral 5 하나로 곱했는데 neutral 8과 3.5도 표의 값 근처로 내려앉으면 플레이트가 제대로 선형입니다. 이 칸들이 기준에서 크게 벗어난다면 Grade 문제가 아닙니다. 선형 값은 곱셈 하나로 모든 회색 단계가 함께 움직이므로, 단계마다 어긋남이 다르다는 것은 앞의 색공간 변환을 다시 보라는 신호입니다.
여기서 이런 의문이 들 수 있습니다. 플레이트를 이렇게 회색으로 바꿔 놓으면 촬영감독이 만든 색은 어디로 가나요? 그 답은 3단계에서 닫습니다. 지금은 CG를 맞출 공통 기준을 만든 것뿐입니다.
2단계: CG에 같은 차트를 놓고 조명을 맞춥니다
이제 플레이트의 회색 칸은 0.19입니다. CG 쪽도 같은 질문을 받아야 합니다. 같은 자리에 같은 차트가 있었다면, 내 CG 조명 아래에서 그 칸은 0.19로 렌더될까요?
CG 씬에 디지털 맥베스 차트를 하나 만듭니다. 칸 색은 작업 색공간(예: ACEScg)에 맞는 기준값을 넣고, 반사(스페큘러)가 없는 확산 재질로 둡니다. 정확한 칸 값은 Colour Developers가 공개한 Nuke 파일에서 ACEScg를 포함한 여러 색공간으로 받을 수 있습니다. 이 차트를 매치무브로 찾은 실제 차트 자리와 방향에 놓고, 샷과 같은 HDRI·라이트, 같은 카메라로 렌더합니다.
렌더한 CG 차트를 중립 보정된 플레이트 차트 옆에 놓고 같은 칸을 샘플합니다. 칸마다 대각선으로 나눠 반은 플레이트, 반은 CG를 보이게 겹치면 차이가 한눈에 보입니다. 모든 칸이 같은 방향으로 어긋나 있다면 CG 조명의 노출과 색 문제입니다.

그림의 ②처럼 CG 회색 칸의 G가 0.270이면 0.19보다 log2(0.27 ÷ 0.19) ≈ 0.5스톱 밝습니다. 이때는 CG 렌더에 Grade를 거는 대신 라이트를 고칩니다. Arnold는 라이트 세기를 color × intensity × 2^exposure로 계산하고, 문서도 exposure가 플레이트에 값을 맞출 때 직관적이라고 설명합니다. 모든 라이트의 exposure를 0.5씩 내리면 됩니다.
R·G·B의 비율이 다르면 빛의 색이 다른 것입니다. 위 예에서 CG 칸은 B가 G보다 크니 조명이 플레이트보다 차갑습니다. 계산기 아래 칸이 알려 주는 배율을 라이트나 HDRI 색에 곱하고, 다시 렌더해 같은 칸을 샘플합니다. 한두 번이면 회색 칸의 대각선 경계가 사라집니다.
왜 합성 Grade가 아니라 조명에서 고칠까요? Grade는 그 렌더 한 장의 숫자만 바꾸지만, 라이트를 고치면 반사·바운스·그림자가 함께 맞습니다. 같은 날 찍은 여러 샷을 모두 중립 보정해 두면, 맞춘 라이트 세팅 하나를 여러 샷에 그대로 쓸 수도 있습니다. 실무 포럼에서도 “플레이트와 HDR을 차트로 맞추고 CG 조명은 한 번만 잡는다”는 흐름이 이 이유로 나옵니다.
컬러체커의 색 칸까지 맞춰야 할까
회색 칸이 맞으면 처음의 질문이 다시 고개를 듭니다. 빨강, 파랑, 피부색 칸은요? 실제로 Nuke에는 24칸을 한꺼번에 샘플해 맞추는 도구가 있습니다. Nukepedia의 mmColorTarget은 24칸을 비교해 색 행렬(ColorMatrix)을 계산하고, NukeX의 MatchGrade는 두 이미지를 맞추는 3D LUT나 CDL을 만듭니다.
하지만 VFX에서 차트를 쓰는 방식은 그쪽이 아닙니다. 색과학 라이브러리 colour-science를 만든 Thomas Mansencal은 스펙트럼 측정이 없다면 차트는 화이트밸런스와 상대 노출에만 쓰라고 정리합니다. 이유는 셋입니다.
- 차트 기준값은 특정 조명(D50)에서 잰 값입니다. 장면의 빛이 다르면 색 칸이 그 값과 다르게 찍히는 것이 정상입니다.
- 카메라는 사람 눈과 같은 방식으로 색을 나누지 않습니다. 카메라 제조사는 훨씬 많은 샘플로 입력 변환을 만들었고, 24칸으로 그 작업을 덮으면 오히려 망가질 수 있습니다.
- 색 행렬은 채널을 서로 섞습니다. 그 상태로 CG를 얹은 뒤 중립 보정을 되돌리면 색역 밖 색 같은 부작용이 생길 수 있습니다.
같은 글은 예외도 적습니다. 제대로 된 입력 변환이 없는 카메라에, 반사율을 아는 차트와 스펙트럼을 아는 조명이 있다면 차트로 색을 보정하는 것이 도움이 됩니다. 일반 촬영 플레이트는 대부분 여기에 해당하지 않습니다.
이제 처음 질문에 답할 수 있습니다.
컬러체커로 맞추는 것은 회색 칸의 밝기와 균형뿐이고, 색 칸은 맞았는지 확인하는 증거입니다.
회색을 맞춘 뒤 색 칸에 작은 차이가 남는 것은 정상입니다. 반대로 특정 색 칸만 크게 다르다면, 그 차이를 Grade로 지우지 말고 이유를 찾습니다. 초록 칸들만 플레이트 쪽이 진하다면 잔디에서 올라오는 초록 반사가 HDRI에 빠졌을 수 있습니다. 모든 색 칸의 채도가 한꺼번에 다르다면 플레이트의 색공간 변환을 다시 봅니다.
3단계: 합성이 끝나면 같은 Grade로 되돌립니다
1단계에서 남긴 의문으로 돌아갑니다. 중립 보정은 납품할 색이 아니라 작업용 기준입니다. ACES 커뮤니티에 소개된 플레이트 중립화 흐름도, colour-science의 글도 같은 순서를 씁니다. 중립 상태에서 CG를 맞추고, 납품 전에 중립 보정을 되돌립니다.
Nuke에서는 1단계의 Grade 노드를 복사해 Merge 뒤에 붙이고 reverse를 켭니다. Foundry 문서는 reverse를 복사한 노드로 효과를 아래쪽에서 되돌리는 기능이라고 설명합니다. lift·gamma 없이 곱셈만 썼기 때문에 이 되돌림이 정확합니다.
Plate (선형 작업 공간)
└ Grade_neutral (whitepoint = 샘플, gain = 0.19)
└ Merge over (A: CG, 중립 플레이트에 맞춰 조명한 렌더)
└ Grade_neutral 복사본 (reverse 켬)
└ 렌즈·그레인 등 마무리
확인은 간단합니다. reverse를 켠 뒤 CG가 없는 영역을 원본 플레이트와 Merge(difference)로 비교하면 0에 가까워야 합니다. 0이 아니라면 두 Grade 사이에서 플레이트 쪽에 다른 노드가 끼어 있거나, 복사본의 값이 바뀐 것입니다.
색은 맞았는데 CG가 여전히 바닥에서 떠 보인다면 다른 층을 볼 차례입니다. 발밑의 어둠과 그림자 밀도는 CG가 실사 배경 위에 떠 보일 때 글에서, 표면 질감 차이는 실사와 CG의 그레인 맞추기 글에서 다뤘습니다.
| 보이는 증상 | 먼저 볼 것 | 고치는 곳 |
|---|---|---|
| 플레이트 회색 칸이 기준과 다르다 | 노출·빛의 색 | 중립 Grade (whitepoint·gain) |
| 회색 하나는 맞는데 다른 회색 칸이 크게 어긋난다 | 플레이트가 선형인지 | 색공간 변환 |
| CG 차트의 모든 칸이 같은 방향으로 어긋난다 | 라이트 exposure·색 | CG 조명 |
| 특정 색 칸만 크게 다르다 | 주변 반사, 변환 | HDRI·환경, 색공간 변환 |
| 되돌린 뒤 원본과 차이가 난다 | 두 Grade 사이 노드 | 노드 순서 |
정리: 24칸이 아니라 회색 한 칸
현장에서 찍은 컬러체커는 CG와 플레이트가 함께 설 기준입니다. 플레이트는 회색 칸을 기준값 0.19로 곱해 중립에 두고, CG는 같은 차트를 렌더해 그 칸이 0.19가 되도록 라이트의 exposure와 색을 고칩니다. 합성이 끝나면 같은 Grade를 reverse로 되돌립니다. 색 칸은 맞추는 대상이 아니라 확인하는 증거로 남겨 둡니다.
컬러체커로 맞출 것은 24칸이 아니라 회색 한 칸입니다.
vfx 잡학지식



댓글 0
첫 댓글을 남겨보세요.