요약
이 문서에서는 Mari 3.3v1의 OCIO 색상 관리 시스템에 대한 변경 사항을 설명하고 각 색상 공간에 대한 색상 변환 재정의를 생성하여 사용자 정의 색상 구성을 위해 이 새로운 GPU 가속 시스템을 완전히 활용하는 방법을 자세히 설명합니다.
참고: 이 문서는 자체 맞춤형 OCIO 구성을 정기적으로 사용하는 스튜디오를 대상으로 하며 일반 사용자에게는 익숙하지 않은 용어를 참조할 수 있습니다.
추가 정보
Mari 3.0은 강력하고 파이프라인적인 색상 관리 워크플로우를 허용하는 OCIO 색상 관리 시스템을 도입했습니다. 이는 소스 이미지, 개별 채널 및 GPU 작업 공간의 색상 공간 속성을 통해 더 큰 제어를 제공했습니다. OCIO 시스템은 모든 색상 공간에 대해 소스 이미지를 전처리하거나 내보낸 이미지를 후처리해야 하는 힘든 요구 사항을 제거했습니다.
Mari 의 모든 이미지 처리는 GPU의 GLSL 셰이더를 통해 수행됩니다. 그러나 OCIO는 제공하는 색상 공간 변환 유형이 상당히 제한되어 있습니다. 예를 들어 현재 조건부 분기를 지원하지 않으며 대부분의 경우 LUT를 사용하여 색공간 변환을 수행합니다.
GPU에서 사용될 때 LUT 변환은 불행하게도 성능과 정확성 문제로 인해 어려움을 겪을 수 있는 3D 텍스처로 제공됩니다. 이러한 3D 텍스처는 샘플 수가 적기 때문에 페인트 버퍼를 페인팅 가능한 레이어에 굽는 데 사용되는 경우 부동 소수점 정밀도가 손실됩니다. 최종 색상 데이터의 정확성을 보장하기 위해 Mari 원시 OCIO 수학을 사용하여 CPU에서 스캔라인 렌더링을 수행하여 이 문제를 해결합니다. 이렇게 추가된 오버헤드로 인해 Mari 의 전반적인 성능이 저하되었습니다.
Mari 3.3 에서는 nuke -default 색상 관리 구성 수학이 기본 GLSL 셰이더 코드로 변환되었습니다. CPU에서 GPU로 색상 변환을 전환하면 Mari 의 페인트 베이킹 성능이 크게 향상되었습니다. 커스텀 셰이더 코드를 등록하는 API 함수도 공개되어 커스텀 셰이더를 CPU 스캔라인 방식으로 렌더링해야 하는 필요성을 대체했습니다.
사용자 정의 색상 구성을 위해 이 새로운 GPU 가속 색상 관리 시스템을 완전히 활용하려면 각 색상 공간에서 색상 공간으로의 색상 변환 재정의를 생성해야 합니다. 여기에는 기본 색상 공간에서 작업 색상 공간으로의 변환과 Mari 에서 사용되는 각 색상 공간 간의 변환이 포함됩니다.
당신이해야 할 일
Mari 에서 수행된 색상 공간 조정을 올바르게 설명하기 위해 작업 색상 공간도 ACEScg로 설정된 경우 ACEScg로 설정된 채널에서 sRGB 참조 이미지를 페인트 가능한 레이어로 베이킹할 때 Mari 가 취하는 단계는 다음과 같습니다.
- 소스 이미지
(유틸리티 - sRGB - 텍스처) - 소스 페인트를 작업 색상 공간으로 변환
(유틸리티 - sRGB - 텍스처 -> ACES - ACEScg) - 기존 대상 페인트를 작업 색상 공간으로 변환
(ACES - ACEScg - > ACES - ACEScg) (변경 없음) - 도구를 통한 대화형 페인트 표시 및 베이킹 작업 수행
(ACES - ACEScg) - 구운 페인트를 대상 채널 색상 공간으로 변환
(ACES - ACEScg -> ACES - ACEScg) (변경 없음) - 최종 채널 데이터
(ACES - ACEScg)
참고: 작업 색상 공간이 추가 색상 공간으로 구성된 경우 위에서 언급한 (변경 없음) 단계에서 추가 색상 공간 변환이 발생하며 이 또한 다루어야 합니다.
사용자 정의 색상 구성에 대해 색상 공간 변환 재정의가 올바르게 구현되었는지 확인하려면 파이프라인 내에서 다음 세 가지 역할을 고려해야 합니다.
- 컬러 과학자
각 색상 공간 A에서 B로, B에서 A로 변환하는 수학을 계산합니다. - 셰이더 라이터
각 변환에 대해 색상 수학을 최적화된 GLSL 셰이더 코드로 인코딩합니다. - 파이프라인 TD
색상 공간 변환 등록을 구성하려면 각 변환에 대한 호출을 수행하고 아티스트가 Mari 를 시작할 때 이를 실행합니다.
예
이 기사에 첨부되어 다운로드할 준비가 되면 Mari 4.0v1의 ACES 1.0.3 구성에 대해 이러한 변경 사항이 어떻게 최적화되었는지에 대한 예제 코드를 찾을 수 있습니다. 이러한 Python 파일의 내용은 스크립트 편집기에서 실행하거나 Mari 시작 시 자동 실행을 위해 파일을 Mari Scripts 디렉터리에 배치할 수 있습니다. Mari Scripts 폴더는 다음 위치에서 찾을 수 있습니다.
Linux 및 OS X: ~/ Mari /Scripts
Windows : C:\Users\<username>\Documents\Mari\Scripts
첨부하면 다음 두 파일을 찾을 수 있습니다.
register_which_transforms.py
실행 시 이 파일은 현재 프로젝트를 살펴보고 가속화하는 데 필요한 모든 색상 공간 변환을 정의합니다. 그런 다음 프로젝트 데이터와 Python 콘솔에 색상 공간 변환 재정의를 등록하는 데 필요한 Python 명령이 인쇄됩니다. 이는 \TODO 문으로 표시됩니다.
register_aces_shader_transforms.py
이 스크립트는 ACES 1.0.3 구성 파일을 최적화하기 위해 수행한 변환 등록을 설명합니다. 이 파일에는 가시성을 위해 sRGB - ACEScg 변환을 녹색으로 바꾸는 디버그 옵션도 포함되어 있습니다.
우리는 문제로 불편을 끼쳐 드려 죄송합니다
이유를 알려주세요