[ver.20] リニアワークフロー

  • リニアワークフロー
  • 大域照明の「反射係数」値の仕様変更について

Shade3D ver.20の新機能として、リニアワークフローとPBRマテリアルが追加されました。
ver.19まではまだリニアワークフローには対応していませんが、意味合いを理解した上でフォトリアルに近づけるということはできました。
その場合の解説は「リニアワークフロー」に記載しています。

ここでは復習としてリニアワークフローについて再度解説し、
ver.20ではどのように調整できるようになったかというのを説明していきます。

リニアワークフローの流れ

リニアワークフローは、「入力」としての画像や色を逆ガンマ補正を考慮してリニアにし、
シーンをレンダリング後に「出力」としてガンマ補正してディスプレイに表示するという一連の流れを指します。

これにより、フォトリアルなシーンをレンダリングすることができます。
ver.19までは、「入力」でテクスチャ画像や拡散反射色などをリニアにし、
「出力」のために色補正ウィンドウでガンマを2.2にする必要がありました。

ver.20でのリニアワークフローの指定

Shade3D ver.20では、このリニアワークフロー処理は自動化されています。
過去バージョンと同じように手動で割り当てることもできます。
新規シーンの場合は初期状態でリニアワークフローの設定がされており、
そのままシーンを作成してレンダリングすると、リニアワークフローを考慮したレンダリングイメージが得られます。
そのため、特に何もする必要はありません

以下の説明で、リニアワークフローの工程での「出力」はレンダリング後の色空間指定、
「入力」はレンダリング前の色空間指定になります。

出力 : レンダリング設定でのカラーマネージメント指定

イメージウィンドウのレンダリング設定より「イメージ」タブを選択します。
「カラーマネジメント」というグループが追加されています。

「ワーキングカラースペース」はレンダリングにおける色空間の種類を選択します。
「リニアsRGB(ガンマ1.0)」を指定すると、レンダリング工程はリニアで行われることになります。
「出力カラースペース」はレンダリング後のガンマ調整の種類を選択します。
「sRGB」を指定すると、すべてリニアでレンダリングされたレンダリング画像をsRGBで変換します。
この「sRGB」は規格化された色空間です。
昨今のモニターでは標準的に使用されています。
ガンマ2.2と近いのですが同じではありません。
「出力カラースペース」でsRGBを指定した場合、入力時にsRGBの逆補正をかける必要があります。
これは後述します。

出力 : 色補正のガンマを1.0にする

このとき、色補正ウィンドウのガンマは1.0にします。

入力 : 単一の色について

拡散反射色(ver.20でのPBRではベースカラー)の色や背景での色、光源色などは、
レンダリング時に自動的にリニアに変換されます。
ver.19以前と違い、特に何も指定する必要はありません。

入力 : イメージのガンマ指定

イメージパートでマスターイメージを選択したときに統合パレットで表示される
「形状情報」ウィンドウで、「カラースペース」の選択ができます。

「sRGB(自動ガンマ)」を指定した場合は、
背景としての使用や割り当てたマテリアルの指定(拡散反射マップや法線マップ、バンプマップなど)により、
レンダリング時にイメージに対して自動的に逆ガンマ補正がかかります。
イメージのカラースペースは、初期状態で「sRGB(自動ガンマ)」になっているため、
新規シーンでは特に何もする必要はありません。

イメージの種類 逆ガンマ補正
背景(HDRI)
背景(LDRI) あり
Shade3Dマテリアル : 拡散反射(HDRI)
Shade3Dマテリアル : 拡散反射(LDRI) あり
Shade3Dマテリアル : 法線
Shade3Dマテリアル : バンプ
PBR : ベースカラー(HDRI)
PBR : ベースカラー(LDRI) あり
PBR : 法線
PBR : バンプ

HDRIは、拡張子がhdrまたはexrのダイナミックレンジを持つイメージを指します。
LDRIは、jpegやpngなどのガンマ補正済みの標準的なイメージを指します。
「Shade3Dマテリアル」はShade3Dの表面材質での従来の指定です。
「PBR」はver.20で追加された表面材質でのPBRの指定です。

HDRIのイメージの場合は、特別な指定がなければ元画像がリニアになっています。
この場合は、「sRGB(自動ガンマ)」ではリニアなイメージとして変換なしで使用されます。
jpegやpngなどのイメージ(LDRI)を使用しており、かつ拡散反射やベースカラーの「色」としてマッピングする場合は、
「sRGB(自動ガンマ)」ではリニアに変換されます。
マッピングで「法線」や「バンプ」を行う場合は、テクスチャはそのまま使用されます。

無限遠光源の環境光

これはリニアワークフローの工程とは異なりますが、リニアワークフローでのレンダリングでは環境光は使用しないことが望ましいです。
ver.20では新規シーンを作成時の初期状態で、無限遠光源の環境光は0になっています。

大域照明のパストレーシングの反射係数

ver.19までは、よりフォトリアルなレンダリングを行う場合は、
レンダリング設定の大域照明での「パストレーシング」タブの「反射係数」は2.0にする必要がありました
ver.20からは、ver.19での「反射係数」の0.5倍の値で同じ挙動になるように仕様変更されています。
ver.20での「反射係数」の初期状態は0.9が入っています。

これは、ver.19までの「反射係数」の0.9 * 2 = 1.8に相当します。
この初期値くらいの「反射係数」でレンダリングすると、フォトリアルに近づきます。

以上でレンダリングを行うと、リニアワークフローを考慮したフォトリアルなレンダリング結果を得ることができます。
以下は、Shade3D ver.20のリニアワークフローで初期値のままレンダリングした画像になります(サンプルのPhysicalSky_PBR.shd)。

ver.20で過去のShade3Dのレンダリングと同じにするには ?

レンダリング設定で一か所調整することで、
Shade3D ver.19までと同じ挙動にすることができます。
この場合は、リニアワークフローを考慮しない点に注意してください。

レンダリング設定の「イメージ」タブで、
「カラーマネジメント」グループの「ワーキングカラースペース」を「レガシーShade3D」にします。

この場合は「出力カラースペース」の指定に限らず、ver.19までのレンダリング結果と同じ色空間になります。
また、イメージの形状情報ウィンドウを表示したときのカラースペースが「sRGB(自動ガンマ)」の場合も
「リニアsRGB(ガンマ 1.0)」と同じになります。

ver.19以前のシーンを読み込んだ場合

ver.19以前のシーンファイル(拡張子shd)を読み込んだ場合は、
「ワーキングカラースペース」は「レガシーShade3D」が割り当てられます。
また、大域照明のパストレーシングの「反射係数」の値は0.5倍した値が格納されます。

今回は、ver.20で追加されたリニアワークフローについて説明しました。
次回は表面材質(マテリアル)部のPBRマテリアルについて説明していく予定です。

カテゴリー: リニアワークフローとPBRマテリアル