본문 바로가기
vfxai 잡학지식 vfxai 잡학지식

실사 카메라 노출을 CG 렌더러로 옮기기: ISO·셔터·조리개를 물리 카메라 값으로

vfx 잡학지식 읽는 시간 약 10분 조회 1

실사 카메라 노출을 CG 렌더러에 옮길 때, 플레이트의 메타데이터가 f/8, 1/125초, ISO 400이라면 이 값을 Arnold나 Blender의 Exposure 칸에 그대로 넣으면 될까요? 촬영 메타데이터의 EV를 렌더러의 exposure로 바꾸려면 어떻게 계산해야 할까요? 값 하나를 복사하는 대신, EV100 계산과 ISO·셔터·조리개가 만드는 스톱 차이를 나눠 봐야 합니다.

이번 글에서는 EXIF의 EV 관련 값부터 구분하고, 실제 설정값으로 노출 차이를 직접 계산하겠습니다. 이어서 Arnold, Karma, Blender 5.0에서 어떤 항목으로 옮기는지 확인합니다.

카메라 노출에 앞서 EV100과 노출 보정값을 구분합니다

사진 메타데이터에서 숫자 하나만 찾으면 그게 곧 렌더러의 Exposure라고 생각하기 쉽습니다. 하지만 EXIF에는 촬영 시간, 조리개, 감도, 노출 보정처럼 서로 다른 항목이 따로 기록됩니다.

ExposureTime은 셔터가 열린 시간을 초로 저장하고, FNumber는 f-number를 저장합니다. PhotographicSensitivity는 촬영 때의 감도 정보를 담습니다. 반면 ExposureBiasValue는 카메라 측광 기준에서 얼마나 보정했는지를 나타내는 값입니다.

따라서 ExposureBiasValue를 f-number·셔터 시간·ISO로 만든 EV와 같은 값으로 취급하면 안 됩니다. 가능하면 세 촬영값을 먼저 확인하고, EV 숫자만 전달받았다면 그 숫자가 EV100인지 노출 보정인지부터 확인합니다.

ISO 100 기준의 설정값을 EV100으로 나타내는 식은 다음과 같습니다.

EV100 = log2(N² / t) - log2(ISO / 100)

N은 f-number, t는 셔터 시간(초), ISO는 촬영 감도입니다. EV100은 EV = log2(N² / t)에서 log2(ISO / 100)을 뺀 값입니다. ISO 100으로 촬영하면 ISO 항이 0이 되어 EV100 = log2(N² / t)로 단순화됩니다.

예를 들어 ISO 100에서 f/8, 1/125초라면 EV100 = log2(8² ÷ (1/125)) = log2(8000) ≈ 12.97입니다. 이 값은 촬영 조명이 몇 럭스인지, 렌더러의 빛 단위가 어떤지 알려 주는 수치가 아닙니다.

렌더러에는 EV가 아니라 기준과의 스톱 차이를 넣습니다

실사 설정을 다른 기준 설정과 비교할 때는 센서에 쌓이는 상대 노출을 계산합니다. 같은 장면과 같은 응답 기준이라면 이 값은 셔터 시간과 ISO에 비례하고 f-number 제곱에 반비례합니다.

상대 노출 E ∝ t × ISO / N²

Δstops = log2(E대상 / E기준)
        = log2(t대상 / t기준)
        + log2(ISO대상 / ISO기준)
        + 2 × log2(N기준 / N대상)

여기서는 밝아지는 보정을 +로 둡니다. +1 stop은 선형 밝기값을 두 배로, -1 stop은 절반으로 바꿉니다. 이 부호는 EV100 숫자의 증가 방향과 반대일 수 있으므로, 실제로는 대상과 기준의 노출비로 판단합니다.

첫 번째 예로 f/8, 1/125초를 그대로 두고 ISO만 100에서 400으로 올려 보겠습니다. 감도 비율은 400/100=4이므로 노출 차이는 log2(4)=+2 stops입니다. 기준 렌더보다 두 스톱 밝게 보정하는 값입니다.

두 번째 예는 기준 f/8, 1/125초, ISO 100과 대상 f/4, 1/250초, ISO 100입니다. 셔터 시간이 절반이 되면 -1 stop이고, f/8에서 f/4로 열면 조리개 면적 항이 네 배가 되어 +2 stops입니다. 합계는 +1 stop이며, 대상 EV100 약 11.97은 기준 EV100 약 12.97보다 1 낮습니다.

이 계산은 밝기 차이만 보여 줍니다. 조리개를 바꾸면 피사계 심도가 달라지고, 셔터 시간을 바꾸면 움직이는 물체의 블러 길이가 달라집니다. 24fps 영상의 180도 셔터는 1/48초에 해당하므로, 플레이트의 모션블러까지 맞출 때는 셔터 앵글과 렌더 모션블러의 관계도 함께 확인합니다.

카메라 노출 스톱 차이 계산: ISO 100에서 400은 +2 stop, f/8 1/125초에서 f/4 1/250초는 셔터 -1 stop과 조리개 +2 stop을 합쳐 +1 stop
본문의 두 예시를 직접 계산한 값입니다. 렌더 노출에는 EV100 숫자가 아니라 기준 설정과 비교한 스톱 합계를 옮깁니다. 두 예 모두 EV100 숫자가 낮아진 만큼 노출은 밝아집니다.

Arnold에서는 Exposure와 셔터·심도를 따로 맞춥니다

Arnold 카메라 문서의 Exposure는 물리적인 ISO·조리개·셔터 조합이 아니라 비물리적 노출 보정입니다. 값을 1 올리면 한 스톱 밝아지고 선형 밝기가 두 배가 됩니다.

따라서 씬의 기준 노출을 정한 뒤 위 식으로 구한 Δstops를 이 보정값에 더합니다. 기준 렌더를 0으로 놓고 플레이트가 두 스톱 더 밝아야 한다면 Exposure를 +2만큼 이동시키는 식입니다.

다만 Arnold의 Aperture Size는 월드 단위로 심도를 조절하는 반경입니다. f/8이라는 숫자를 그대로 넣는 항목이 아닙니다. Shutter Start/End는 모션블러 샘플의 시간 범위이므로, 밝기 보정과 분리해 프로젝트의 프레임레이트와 셔터 위치 규칙에 맞춥니다.

Karma에서는 노출 계산용 물리값과 DOF 값을 나눠 입력합니다

Houdini Solaris의 Camera LOP에는 Exposure Time, Exposure ISO, Exposure F-Stop이 있습니다. SideFX 문서는 노출 배율을 다음 식으로 설명합니다.

linearScale = (Exposure Time × Exposure ISO × 2^Exposure × Exposure Responsivity)
              / (100 × Exposure F-Stop²)

촬영 메타데이터를 물리값으로 옮길 때는 노출 계산용 항목에 셔터 시간(초), ISO, f-number를 넣습니다. 여기서 Exposure는 log₂ 보정값이라 +1이면 두 배, -1이면 절반입니다. 별도의 F-Stop은 피사계 심도를 조절하므로 노출용 Exposure F-Stop과 구분합니다.

또한 카메라의 Shutter Open/Close는 프레임 안에서 모션블러를 계산하는 구간입니다. 노출 배율 계산에 쓰는 Exposure Time과 이름이 비슷해도 서로 다른 역할입니다. 절대 밝기까지 맞추려면 장면의 조명 단위와 Exposure Responsivity를 포함한 기준 캘리브레이션이 필요합니다.

Blender 5.0에서는 색관리 노출을 스톱 보정으로 씁니다

Blender 5.0의 기본 Camera 데이터에는 실사 카메라처럼 ISO, 셔터 속도, 노출값을 한꺼번에 입력하는 항목이 없습니다. 카메라의 DOF용 F-Stop은 있지만, 이것을 렌더 노출 조정과 같은 값으로 보면 안 됩니다.

이 PC에 설치된 Blender 5.0.0을 blender -b로 확인했을 때도 Camera에는 lens와 dof가 있었고 exposure, iso, shutter_speed는 없었습니다. camera.dof.aperture_fstop과 씬의 view_settings.exposure 속성은 확인했습니다.

스톱 단위의 보정은 Render Properties의 Color Management Exposure에서 할 수 있습니다. Blender 매뉴얼의 식은 output_value = render_value × 2^exposure이므로, 기준과 비교해 계산한 Δstops를 적용하면 됩니다.

Cycles의 Film Exposure는 색관리 노출과 다른 단계에서 렌더 데이터에 작용합니다. 매뉴얼도 Film Exposure는 데이터에, Color Management Exposure는 view transform에 적용된다고 구분합니다. 두 항목을 동시에 움직이면 같은 보정을 중복 적용할 수 있으므로 목적에 맞는 한 경로를 선택합니다.

렌더의 수치와 화면에서 보이는 밝기는 색관리 변환에 따라 달라질 수 있습니다. 선형 이미지 값과 디스플레이 변환을 분리하는 이유는 Linear Workflow에서 렌더 빛을 계산하는 방식과도 연결됩니다.

결론은 EV100이 아니라 기준과의 Δstops입니다

촬영값을 렌더러 exposure로 옮길 때는 EV100을 그대로 입력하지 말고, 기준 설정과 촬영 설정의 상대 노출비를 log₂로 계산한 Δstops를 적용합니다.

실무에서는 먼저 원본 메타데이터에서 f-number, 셔터 시간, ISO를 확인합니다. 다음으로 기준 렌더의 카메라 노출을 정하고, 목표 촬영값과의 스톱 차이를 계산합니다.

  • Arnold: 기준 노출에 대한 Δstops를 카메라 Exposure 보정값에 반영합니다.
  • Karma: Exposure Time·ISO·Exposure F-Stop에 촬영값을 입력하고 필요하면 Exposure 보정값으로 미세 조정합니다.
  • Blender 5.0: 색관리 Exposure를 스톱 보정으로 사용하고 DOF용 F-Stop과 구분합니다.
  • 세 렌더러 모두 셔터 구간과 조리개 심도는 밝기와 별도로 플레이트에 맞춥니다.

빛의 단위와 센서 응답이 정해져 있지 않으면 EV만으로 절대 밝기를 예측할 수 없습니다. 렌더와 플레이트를 같은 색관리 경로에서 비교하고, 실제 샷의 기준 노출에 맞춰 마무리합니다.

결국 렌더러 노출은 EV100의 절대값이 아니라 기준과의 스톱 차이로 맞춥니다.

참고 문서

vfx 잡학지식

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.