지원 티켓 만들기
팔로우

Q100362 : GPU 가속화 된 색상 관리를위한 OCIO 구성 최적화

개요

이 기사에서는 Mari 3.3v1의 OCIO Color Management System 변경 사항에 대해 설명하고 각 색상 공간에 대한 색상 변환 재정의를 생성하여 사용자 정의 색상 구성을 위해이 새로운 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 기본 색상 관리 구성 수학이 기본 GLSL 쉐이더 코드로 변환되었습니다. CPU에서 GPU로 색상 변환을 전환하면 Mari의 페인트 굽기 성능이 크게 향상되었습니다. 커스텀 쉐이더 코드를 등록하는 API 함수는 커스텀 쉐이더를 CPU 스캔 라인 메소드로 렌더링 할 필요성을 대체하기 위해 개발되었습니다.

사용자 정의 색상 구성을 위해이 새로운 GPU 가속 색상 관리 시스템을 완벽하게 활용하려면 각 색상 공간에 대한 색상 변환 재정의 색상 공간을 만들어야합니다. 여기에는 기본 색상 공간에서 작업 색상 공간 및 후면 색상으로의 변환과 Mari에서 사용되는 각 색상 공간 간의 변환이 포함됩니다.

해야 할 일

Mari에서 만든 색상 공간 조정을 올바르게 설명하기 위해 작업 색상 공간이 ACEScg로 설정된 경우 sRGB 참조 이미지를 ACEScg로 설정된 채널의 페인트 가능한 레이어로 베이킹 할 때 Mari가 수행하는 단계는 다음과 같습니다.

  1. 원본 이미지
    (유틸리티 - sRGB - 텍스처)
  2. 원본 페인트를 작업용 색상 공간으로 변환
    (유틸리티 - sRGB - 텍스처 -> ACES - ACEScg)
  3. 기존 대상 페인트를 작업용 색상 공간으로 변환
    (ACES - ACEScg -> ACES - ACEScg) (변경하지 않음)
  4. 대화 형 Paint Through 도구를 표시하고 베이크 작업을 수행합니다.
    (ACES - ACEScg)
  5. 구운 페인트를 대상 채널 colorspace로 변환
    (ACES - ACEScg -> ACES - ACEScg) (변경하지 않음)
  6. 최종 채널 데이터
    (ACES - ACEScg)

참고 : 작업 색상 공간이 추가 색상 공간으로 구성된 경우 위에서 언급 한 ( 변경 없음) 단계에서 추가 색상 공간 변환이 발생하며 이러한 색상 공간 변환도 적용해야합니다.

사용자 지정 색 구성에서 색 공간 변형 재정의를 올바르게 구현하려면 파이프 라인에서 다음 세 가지 역할을 고려해야합니다.

  1. 컬러 과학자
    A ~ B와 B ~ A 변환에 대한 각 색상 공간에 대한 수학을 계산합니다.
  2. 셰이더 작성자
    각 변환에 대해 색상 수학을 최적화 된 GLSL 쉐이더 코드로 인코딩합니다.
  3. 파이프 라인 TD
    colorspace를 만들려면 각 변환에 대한 등록 호출을 호출하고 아티스트가 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 변환을 녹색으로 변경하여 표시 여부를 결정하는 디버그 옵션도 포함되어 있습니다.

도움이 되었습니까?
/

We're sorry to hear that!

Please tell us why.
0명 중 0명이 도움이 되었다고 했습니다.

댓글