サポートチケットを作成する
フォローする

Q100362:GPUアクセラレートカラーマネジメント用にOCIO設定を最適化する

概要

この記事では、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に設定されているときに、MariがACEScgに設定されたチャンネルのsRGB参照画像をペイント可能なレイヤーにベイクダウンするときの手順を示します。

  1. ソース画像
    (ユーティリティ - sRGB - テクスチャ)
  2. ソースペイントを作業用カラースペースに変換する
    (ユーティリティ - sRGB - テクスチャ - > ACES - ACEScg)
  3. 既存のターゲットペイントを作業用カラースペースに変換する
    (ACES - ACEScg - > ACES - ACEScg) (変更なし)
  4. 対話型のペイントスルーツールを表示してベイク処理を実行する
    (ACES - ACEScg)
  5. 焼き付けたペイントをターゲットのチャンネルカラースペースに変換する
    (ACES - ACEScg - > ACES - ACEScg) (変更なし)
  6. 最終チャンネルデータ
    (ACES - ACEScg)

注:作業用カラースペースが追加のカラースペースに設定されている場合は、上記の(変更なし)の手順で追加のカラースペース変換が行われるため、これらもカバーする必要があります。

カラースペース変換の上書きがカスタムカラー設定に対して正しく実装されるようにするには、パイプライン内で次の3つの異なる役割を考慮する必要があります。

  1. カラー科学者
    各色空間AからBおよびBからAへの変換の計算を行う。
  2. シェーダーライター
    カラー変換を各変換用に最適化されたGLSLシェーダコードにエンコードします。
  3. パイプラインTD
    カラースペース変換登録を構築するには、各変換を呼び出し、アーティストがMariを起動したときにそれらを実行します。

この記事に添付され、ダウンロードの準備が整ったところで、Mari 4.0v1のACES 1.0.3構成用にこれらの変更がどのように最適化されたかを示すサンプルコードが見つかります。これらのPythonファイルの内容は、スクリプトエディタで実行することも、Mari起動時に自動的に実行されるようにMari Scriptsディレクトリに配置することもできます。 Mari Scriptsフォルダは、次の場所にあります。

LinuxとOS X: ~/Mari/Scripts
WindowsC:\Users\<username>\Documents\Mari\Scripts

添付すると、以下の2つのファイルが見つかります。

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人がこの記事が役に立ったと言っています

コメント