감독이 현장 모니터로 본 룩을 누크에서 재현하려면: ASC CDL 읽고 적용하기
편집실에서 넘어온 ASC CDL 룩을 원본은 건드리지 않고 누크 작업 뷰어에만 얹으려면 어떻게 해야 할까요? 숫자를 그대로 적용했는데도 감독이 현장 모니터로 본 룩과 다르다면 값부터 바꿔야 할까요? 먼저 파일의 샷 ID와 Viewer 전용 적용을 확인하고, 마지막에 적용 색공간을 맞춥니다.
같은 CDL 값인데 화면은 다르게 보일 수 있습니다. 그때도 값을 먼저 바꿔야 할까요?
먼저 CDL 파일과 샷 ID를 읽고, Nuke의 Input Process로 룩을 Viewer에만 적용한 뒤, 마지막에 CDL 작업 색공간을 확인합니다. 메뉴·노브 이름은 Foundry Nuke 17.1v1 문서 기준입니다. 비교 이미지는 Nuke 15.1v4에 포함된 PyOpenColorIO 2.2.1과 OCIO 설정으로 계산했으며, Nuke UI에서 직접 실행한 화면은 아닙니다.
1. ASC CDL 파일에서 숫자 열 개 읽기
ASC CDL은 색보정 한 번을 숫자 열 개로 적은 약속입니다. 빨강·초록·파랑 채널마다 slope, offset, power가 하나씩 있어 아홉 개이고, 여기에 saturation 하나가 붙습니다.
기본 계산 순서는 채널마다 값에 slope를 곱하고 offset을 더한 뒤 power를 적용하고, 마지막으로 Rec.709 휘도 가중치(0.2126, 0.7152, 0.0722)를 기준으로 saturation을 적용하는 것입니다. 다만 음수값의 power 처리와 클램프 여부는 색공간 규격과 구현을 확인해야 합니다. 예를 들어 ACEScct 사양 부록 A는 slope와 offset을 적용한 값이 0 이하일 때 power를 적용하지 않고, CDL 처리 중 클램프하지 않도록 정합니다.
받는 파일의 모양은 여러 가지입니다. 확장자를 보면 숫자를 어디서 꺼낼지 알 수 있습니다.
| 받은 것 | 안에 든 것 | 누크에서 쓰는 법 |
|---|---|---|
| .cc | ColorCorrection 하나(샷 하나) | OCIOCDLTransform의 file로 바로 읽기 |
| .ccc | ColorCorrection 여러 개, 각각 id가 붙음 | file로 읽고 cccid로 샷 고르기 |
| .cdl | ColorDecisionList 안의 ColorCorrection | 노드 문서에는 .cc·.ccc만 나옴. 안 열리면 값을 옮겨 적기 |
| EDL | 이벤트마다 *ASC_SOP, *ASC_SAT 주석 줄 | 숫자를 노브에 옮겨 적기 |
| AMF(ACES) | CDL 값과 그 값을 걸 색공간(cdlWorkingSpace) | 값과 색공간을 함께 읽기(3절) |
.cc 파일은 텍스트 편집기로 열 수 있습니다. 샷 하나의 열 개 숫자가 이렇게 들어 있습니다.
<ColorCorrection id="A012C003">
<SOPNode>
<Slope>1.03 1.0 0.96</Slope>
<Offset>0.008 0.0 -0.008</Offset>
<Power>1.05 1.05 1.05</Power>
</SOPNode>
<SatNode>
<Saturation>0.9</Saturation>
</SatNode>
</ColorCorrection>
EDL로 받았다면 이벤트 아래 주석 줄을 찾습니다. 괄호 세 개가 차례로 slope, offset, power이고, 괄호 안은 R, G, B 순서입니다.
*ASC_SOP (1.03 1.0 0.96)(0.008 0.0 -0.008)(1.05 1.05 1.05)
*ASC_SAT 0.9
.ccc는 샷별 ColorCorrection이 여러 개 들어갈 수 있습니다. 파일을 읽었다면 cccid가 현재 샷을 가리키는지 따로 확인하세요. 로컬 PyOpenColorIO 2.2.1에서는 cccid를 비웠을 때 첫 항목이 반환됐습니다. 이 동작은 OCIO 라이브러리 기준입니다. Nuke 노드에서는 cccid를 직접 선택해 현재 샷과 맞는지 확인하세요. 예를 들어 A012C004 샷이면 select cccid에서 해당 항목을 선택합니다.
숫자를 제대로 꺼냈다면 이제 어디에 얹을지가 남습니다. 플레이트에 바로 걸면 안 되는 이유가 있습니다.
2. 누크 CDL은 Input Process로 Viewer에만 적용하기
CDL을 합성 트리 안에 Grade처럼 넣으면 Write로 나가는 파일에 룩이 구워집니다. 편집실과 DI는 VFX가 손대지 않은 픽셀이 원본 플레이트와 정확히 같기를 기대합니다. ACES의 VFX 체크리스트도 DI로 보내는 왕복을 미리 시험해 이 점을 확인하라고 적고 있습니다. 룩은 렌더 파일이 아니라 보는 화면에만 있어야 합니다.
누크 Input Process는 이 목적에 맞는 뷰어 전용 경로입니다. Foundry 문서에 따르면 Input Process와 Viewer Process는 활성화한 Viewer에만 적용되며 렌더 출력에는 영향을 주지 않습니다.

- 노드 만들기: OCIOCDLTransform 노드를 만들고 어디에도 연결하지 않은 채 둡니다. 뷰어가 보는 이미지가 알아서 이 노드를 거칩니다.
- 값 넣기: read from file을 켜고 file에 .cc나 .ccc를 지정합니다. .ccc라면 select cccid로 이 샷의 id를 고릅니다. EDL에서 옮길 때는 read from file을 끄고 slope, offset, power, saturation에 직접 넣습니다.
- working space는 잠시 두기: 기본값 linear가 들어 있다는 것만 기억해 두세요. 3절에서 다시 꺼냅니다.
- Input Process로 지정: 노드를 선택하고 Edit > Node > Use as Input Process를 고릅니다. Viewer의 IP 버튼으로 켜고 끕니다.
- 순서 확인: Viewer 설정의 input process order가 before viewer process인지 확인합니다. Foundry 문서의 기본 순서이며, 이때 Input Process가 Viewer Process보다 먼저 적용됩니다. IP 버튼을 껐다 켜며 Viewer에서 룩이 붙고 빠지는지도 확인합니다.
뷰어 전용인지 확인할 때는 IP를 켠 화면과 끈 화면을 비교하고, Write는 원래의 메인 그래프에서 출력되는지 확인합니다. 필요하면 출력 파일을 같은 Viewer Process로 다시 읽어 원본과 비교합니다. 이때 파일 변환 차이가 섞일 수 있으므로, CDL이 Write로 가는 메인 노드 그래프에 연결되지 않았는지 먼저 확인하세요.
Input Process 지정은 스크립트에 종속되고 한 번에 하나만 사용할 수 있습니다. 스크립트를 넘길 때는 IP가 켜져 있다고 알리거나 끕니다. Write 출력에도 CDL을 넣어야 한다면 Input Process가 아니라 CDL 노드를 메인 그래프에 연결해야 합니다.
여기까지 하면 뷰어에 룩이 붙습니다. 그런데 처음 장면처럼, 붙은 룩이 현장 스틸과 다르게 보이는 일이 흔합니다.
3. ASC CDL 색공간이 다르면 같은 숫자도 다른 룩입니다
룩이 다를 때는 파일 값과 샷 ID가 맞는지 먼저 확인합니다. 그다음 Viewer Process가 현장 기준과 같은지 살핍니다. 이 두 조건을 맞췄는데도 화면이 다르면, 이제 2절에서 미뤄 둔 working space를 확인할 차례입니다.
남은 것은 2절에서 미뤄 둔 working space입니다. ASC CDL은 숫자 열 개만 담고, 그 숫자를 어느 색공간에서 걸었는지는 담지 않습니다.
현장 CDL은 보통 log 그레이딩 공간에서 만들어집니다. ACES로 찍는 현장이면 ACEScct나 ACEScc를 쓰고, 아니면 카메라 log(예: ARRI LogC3) 위에서 만들기도 합니다. log 값에서 offset은 채널별로 노출을 올리고 내리는 것처럼 작동합니다. 같은 offset을 linear 값에 더하면 밝은 값에는 거의 티가 안 나고 어두운 값만 크게 움직입니다. log 값이 왜 이렇게 다르게 쓰이는지는 Log 영상이 뿌옇게 보이는 원리에서 다뤘습니다.
OCIOCDLTransform의 working space 기본값은 linear입니다. Foundry 문서 설명대로 이 노드는 scene linear 이미지를 working space로 바꾼 뒤 CDL을 걸고, 다시 scene linear로 돌려놓습니다. 기본값 그대로면 log에서 만든 숫자를 linear 값에 거는 셈입니다.

위 그림은 한 장면에 같은 CDL 값(slope 1.03 1.0 0.96, offset 0.008 0 -0.008, power 1.05, saturation 0.9)을 적용한 재현입니다. 18% 회색 카드의 표시값은 원본 115·115·117, ACEScct 124·98·82, linear 116·110·107이었습니다. 이 결과는 한 장면과 한 값 조합의 예시라 모든 CDL에서 linear 적용이 약하다는 뜻은 아닙니다. 바닥 그림자도 두 작업 공간에서 다르게 반응합니다.
그 색공간은 짐작하지 말고 받은 자료에서 찾습니다.
| 가진 정보 | 어디서 찾나 | working space |
|---|---|---|
| AMF 파일 | cdlWorkingSpace 항목 | 거기 적힌 공간(예: ACEScct) |
| ACES 현장이라는 것만 앎 | DIT·컬러리스트에게 ACEScc인지 ACEScct인지 묻기 | 답받은 공간 |
| ACES가 아닌 현장 | 현장 모니터링에 쓴 카메라 log 이름 | 그 카메라 log(예: ARRI LogC3) |
| 아무 정보 없음 | 편집실에 CDL 적용 색공간과 쇼 LUT를 함께 요청 | 답이 올 때까지 룩 판단 미루기 |
ACES VFX Quick Start Guide는 ACEScc와 ACEScct에서 중간·밝은 톤이 비슷하게 보이고 그림자 처리가 달라질 수 있다고 설명합니다. 그래서 잘못 선택해도 바로 알아채지 못할 수 있습니다. 그림자가 많은 샷에서도 한 번 더 비교하세요.
working space 목록은 프로젝트의 OCIO config에 따라 달라집니다. 목록에 ACEScct나 쓰려는 카메라 log가 없다면 config부터 쇼와 맞춰야 합니다. config를 팀이 함께 쓰는 이유는 OCIO config 구조 정리에 있습니다.
같은 숫자가 같은 룩을 내려면, working space를 CDL을 만든 색공간과 같게 맞춰야 합니다.
4. 마지막으로 맞출 것: CDL 뒤에 오는 변환
현장 모니터의 룩이 CDL 하나로만 만들어졌다고 단정할 수는 없습니다. 현장에서 CDL 뒤에 쇼 LUT나 ACES 출력 변환을 적용했다면, 누크 Viewer에서도 같은 경로가 필요합니다. CDL 뒤에 오는 변환까지 맞춰야 현장 화면과 비교할 수 있습니다.
- ACES 출력 변환을 쓴 현장: 뷰어의 view transform을 현장과 같은 ACES 버전·출력 계열로 고르고, 디스플레이는 내 모니터에 맞춥니다.
- 쇼 LUT(.cube 등)가 함께 온 현장: 먼저 LUT가 기대하는 입력 색공간을 확인합니다. OCIOFileTransform은 색공간을 자동 변환하지 않고 파일을 적용하므로, 입력이 LUT의 기대 공간과 다르면 결과가 맞지 않습니다. 노드의 working space도 LUT의 입력 공간에 맞춥니다.
- 쇼 LUT가 화면용 값을 바로 내보낼 때: Viewer Process가 추가로 변환하지 않도록 설정을 확인합니다. 이미 변환된 값에 다시 display transform을 적용하면 룩이 달라질 수 있습니다. LUT 입력·출력 조건은 전달 자료에서 확인하고, LUT 적용 후 색이 달라지는 경우처럼 보이면 이중 적용도 점검하세요.
- CDL과 쇼 LUT를 함께 볼 때: Group·Gizmo도 Input Process로 지정할 수 있습니다. CDL과 LUT를 한 Group에 묶는 구성은 문서들을 조합한 가능성이지, Nuke에서 직접 검증한 절차는 아닙니다. 사용 전 Group 내부의 적용 순서와 색공간, Write 경로가 분리됐는지 쇼 설정에서 확인하세요.
마지막 판단은 기억이 아니라 기준 화면과 나란히 놓고 합니다. 편집실에서 받은 데일리 프레임이나 현장 스틸이 있다면 같은 프레임을 Viewer에서 비교합니다. 회색 카드나 흰 벽은 색 틀어짐을 찾는 출발점입니다. 그 부분만 맞았다고 룩 전체가 같다고 단정하지 말고 그림자와 채도가 높은 영역도 함께 봅니다.
한 줄 정리
- 파일에서 숫자 열 개와 샷 id를 정확히 읽습니다.
- OCIOCDLTransform을 연결 없이 두고 Input Process로 지정합니다.
- working space를 CDL을 만든 색공간으로 맞춥니다.
- 뒤에 오는 view transform·쇼 LUT를 현장과 맞춥니다.
- Write로 뽑은 파일에 룩이 없는지 확인합니다.
숫자는 그대로 옮기고, 룩이 현장과 다르면 값보다 적용 색공간부터 보세요.
vfx 잡학지식


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