2011/02/14

テクスチャのリニア化スクリプト

modoユーザーグループOSAKAのブログでOrange Filmの柳村さんがテクスチャのリニア化スクリプトを公開してくださいました。
http://modoosaka.blogspot.com/

modo501は、デフォルトの出力ガンマが2.2に仕様変更されています。
本来は、出力ガンマが1.0に対してテクスチャのガンマが1.0で正しい色、明るさでレンダリングすることができます。
ですから、出力ガンマが2.2ならば、テクスチャのガンマは1.0/2.2の0.4546にするのが基本になりますが、modoはテクスチャのデフォルトガンマが1.0のままと中途半端な仕様になっています。
出力ガンマが2.2に変更されたのは、おそらく最近のリニアワークフローの影響かと思われますが、現在の仕様には疑問を感じます。
私は、出力ガンマもテクスチャのガンマもデフォルトは1.0であるべきだと思います。
理由はいくつかあります。
勉強会では少し解説をしていますが、出力ガンマを2.2にするリニアワークフローは、ベターではありますが、ベストではないのです。
話が長くなってしまうので、詳しい解説はまたの機会に…。

スクリプトは、レンダーアウトプットの出力ガンマに対してすべてテクスチャのガンマを変換するものと、個々のテクスチャを初期設定の表示ガンマの数値に対して変換するものの2種類が公開されています。
自分のワークフローに合わせてどちらか1つを使うのもいいですし、使い分けをするのであれば両方を使うのもいいと思います。
日本語版用にスクリプトの名前を変えてありますので、まず見てもらいましょう。
個々のテクスチャを初期設定の表示ガンマの数値に対して変換するスクリプトは、「表示ガンマにリニア変換」としています。
また、レンダーアウトプットの出力ガンマに対してすべてテクスチャのガンマを変換するスクリプトは、「すべてのテクスチャガンマに影響」としています。
なるべく日本語版の言い回しに近い表現を選んだつもりです(笑。
そこで、私の使い方を少し説明しておきます。
まず初期設定の表示ガンマには、オリジナルのガンマ値を入力してあります。
(デフォルト露光ガンマも同じガンマ値にしてあります。)
テクスチャを読み込んだ時点で、アンチエイリアシングは基本的に外しますので、そのときに「表示ガンマにリニア変換」で変換します。
出力ガンマを変更しない場合は、これだけでOKですが、テストレンダリングの段階で数種類のガンマ値でレンダリングしてテストする場合は、レンダーアウトプットのガンマ値を変更して「すべてのテクスチャガンマに影響」で一括変換します。
このテストには、スクリプトが大活躍します。
テストレンダリングは0.1から0.2刻みに行いますので、これがあるとないとでは大違いです。
最終的にはPhotoshopなどで調整するので、ガンマ値の0.1や0.2ぐらいは関係ないと思っている人もいるかとは思いますが、0.2も違えば調整後の画像にかなり違いが出ます。
(なんで違いが出るかは、以前勉強会で少しお話しました。そのとき、OpenEXRなどの32bit出力はお勧めしないなどのお話しもしましたが、覚えてくれているだろうか?)
まぁ、そんなことはともかく、最近のリニアワークフロー機能を搭載しているソフトは、みんな自動変換できるわけです。
modoは、ディフューズカラーは、自動変換できるのにどうしてテクスチャは、自動変換できないんでしょうね。
このスクリプトはmodoに標準で搭載されているべき機能だと思うので、お勧めします。

0 件のコメント:

コメントを投稿