KeyShot 2、KeyShot 3とテクスチャー、ガンマ設定

このエントリーに関連して質問がありました。その内容ですが、KeyShot2で作成したファイルをKeyShot3で読み込んでレンダリングすると見栄え、質感が異なる、というものでした。特にテクスチャー、ラベル周りが暗くなる、という現象です。これに対して以下考察を加えたいと思います。

  • KeyShot2とKeyShot3のマテリアルは同じものです。(スペキュラーマップ、オパシティマップなど拡張された機能は当然異なりますがそれ以外は同じです)
  • KeyShot3ではデフォルトのガンマ設定が異なるのでレンダリング結果も違ったものになります。(デフォルトガンマ値が変更された理由は後で述べます)
  • ガンマ値が高い、一方でマテリアルやライトが同じものだとすると当然レンダリング結果は平板なもの(コントラストが弱いもの)となります。

これを変更するには

  • ガンマ値を下げる(言い換えればKeyShot2の設定に戻す/近くする)。
  • マテリアルを弄る(テクスチャに関わることなのでテクスチャのコントラストや明るさを変更する)。
  • 同じ理由で環境タブ内のコントラストを変更する。

となります。「同じファイルなのに結果が違うのは何故?」という素朴な疑問ではありますが上記の設定を変更して修正してください。

デフォルトのガンマ値が変更された理由ですが

  • 元々デフォルトのガンマ値では出来上がったものが暗かった。
  • ガンマ値を2に上げることにより、モニター特性が非リニアであることを相殺できるのと、通常モニター自体のガンマは2.2なのでその値に近づく。つまり表現としては自然なものになる。

の2点があげられます。狙いとしてはレンダリングイメージの質感を上げるためのことがわかります。ですので修正方法としてはガンマを下げることもOKなのですができればマテリアルや環境を変更したほうが望ましいことになります。(KeyShot 3ではテクスチャ内のコントラストも表現されますので)

さて、ちょっと原理的な話になりますが、KeyShotはビューボート内で全ての色情報を32bitとして扱っています。大抵のテクスチャーは8bitですので読み込んでもそもそも合うはずがありません。方法論としては、理想は全てのテクスチャーが.exrや.tifなどの32bitであること(これであれば色情報は統一されます)、そうでない場合は(現実世界ではほとんどそうです)KeyShot内でテクスチャーを弄るか、Photoshop内で行うこととなります。多少ややこしい話ではありますがテクスチャを貼り付けた場合、色や輝度があわないのは当たり前である、ということをご理解頂けたらと思います。下記あちらのフォーラムで見つけた画像です。左がKeyShot 2で作ったもの、右がKeyShot 3で作ったもの、違いがおわかり頂けますでしょうか。

 

KeyShot 3とHDR Light Studio V3 ガンマ設定

KeyShotが2から3にバージョンアップしていくつか変更された点がありました。この中でライティングに関しては旧来のガンマスライダーがコントラストに変わっています(ガンマ値を設定する、というパラメータそのものには変更はありません)。ガンマに関しては簡単に説明したエントリーがこちらにあります。

HDR Light Studioのブログにこの変更点を詳しく説明したエントリーがありました。以下こちらでも説明してみます。

KeyShot 2インターフェースの環境タブ内にあったガンマスライダーがKeyShot 3ではコントラストに置き換わっているのがわかります。KeyShot 3で新しいシーンを作成する場合、デフォルトでコントラストは2.5になります。これを試しに1に戻してみました。これによりHDRIのライト情報が正確に反映されると考えたからです。コントラストを弄るとそれぞれのライトの輝度が相対的に変わるので不正確なものとなります。でもこれは間違いだったようです。2.5の設定は正しいものでありこれはKeyShot 2のガンマ設定の1に相当します。


KeyShot2でシーンを開いた所、ガンマ設定は1.0となっています。HDR Light StudioとKeyShot 2を使うには正しい設定です。

 


同じファイルをKeyShot 3で開くとコントラストは2.5に設定されており、シーンの見た目もそっくり同じものとなります。つまり、HDR Light Studioを使用する時はコントラストの正しい設定値は2.5となります。この値はどこから来るのでしょう?

旧いガンマ設定との関連を確認してみましょう。KeyShot 2でガンマ設定を色々と試してみてKeyShot 3で開いてみる、ということをやってみて相関性を調べてみました。その結果 KeyShot 3コントラストの値 = 3.5 マイナス 旧いガンマの値、であることがわかりました。例えば3.5 – 1 = 2.5となります。

KeyShot 3でシーンを作成する時に、この値をご参考に頂けたらと思います。このような小さな変更に時として頭を悩まされる場合があります。KeyShot上でHDR Light Studioを使ってシーンを作成する時はこのコントラストを弄らずに2.5のままにしておいてください。最終イメージ上でガンマを変更するのが正しいやり方です。

また、HDR Light Studioを用いずに市販のHDRイメージを用いる場合、見た目を良くするためにガンマがデフォルトで2.2に設定されている場合がよくあります。この場合、現実世界のライティング情報が変更されているため不正確なものとなります。つまりガンマをこのように変更した場合、500wのライトは1,000wのライトの半分の輝度ではなくなってしまいます。これを正しい値に修正するには、ガンマ設定値2.2の逆数、1/2.2 = 0.4545を入力します。KeyShot 3でガンマ値0.4545を適用するには、先ほど述べた、環境タブ内にあるコントラストの値を(先ほど述べた数式に沿って入力すると)3.5 – 0.4545 = 3.0455 となります。この場合は小数点以下は無視して3で入力して頂いてかまいません。

よくDOSCHなど、市販のHDRIを買ってきてレンダリングする場合、ガンマがあってなくてへんてこな色になるのも上記の理由からです。確かDOSCHもデフォルトガンマ2.2で設定してあるはずです(100%定かではありませんが)。

白いマテリアルの設定とガンマ補正

Luxionのニュースレターにガンマの調整のtipsがあったのでここにも載せておきます。KeyShotのライティングに関しても若干触れられているので役に立ちます。

ガンマの調整と白いマテリアルの表現

  • KeyShot内では環境側とリアルタイムウインドウのガンマの調整、2つの設定項目があります。環境側は読み込んだ、HDRIファイルに対してリアルタイムはオブジェクトを含むシーン全体に対しての設定となります。デフォルトの設定としてリアルタイムガンマを1.8から2.2ぐらいに設定します。
  • 白く飛んだ部分は環境>ガンマ補正の値を上げることにより解消されます。次にリアルタイムレンダリング>ガンマ補正の値を上げてマテリアル上でよりフォールオフが自然な(徐々に落ちる)ライティングが表現されます。次に輝度を調整して全体の明るさを調整します。
  • マテリアルに関しては、色を100%白色に設定してください。色を弄るのではなくガンマを調整して質感を高めてください。IOR値を上げてリフレクションを多くするとよりリアリスティックな質感になります。
  • 白いマテリアルと他の(もっと暗い色の)マテリアルが混在している場合、白色にあわせてガンマを調整すると暗い色のほうが合わなくなります。この場合は白100%からややトーンを落として他のマテリアルとうまく表現できるよう調整します。
  • 暗い色のバックグラウンドカラーを選択するとより白が映えます。

補足としてガンマをに関して少し説明を加えておきます。ガンマは極々簡単にいうとコントラストの調整です。KeyShotの場合ライティングはHDRIをライトとして使用しています。これは32ビット、つまり人の目には見えない情報が含まれています。人間の目はそれらをうまく調整してつまり補正をかけてその映像を僕らは見ているわけですが、それと似たようなことをやっているのがガンマだと考えて頂いても結構です。つまり色を弄るよりもこちらを調整する方が(僕らの目に近い分)質感を出しやすくなります。モニターのガンマ補正という単語をお聞きになった方も多いと思いますが、あれも原理的には一緒です。モニターのハードウェアとしての制約上、出力が入力に対して比例せず、入力が小さいほど実際の出力の割合が小さくなるのですがそれを調整して明暗をリニアに振って暗すぎたり、明るすぎたりならないよう調整します。

ちなみにまた、機会を見つけて触れていきますが、テクスチャーの扱いはもう少し配慮が要ります。Photoshopなどで弄る必要がありますがレンダリングで適当なテクスチャーはそれ単体では必ず暗くなります。

上の画像をレンダリングした.bipファイルはこちらからダウンロードできます。bumpに使うノーマルマップが含まれていますが、それ以外はごくごく普通のKeyShotファイルです。