スキップしてメイン コンテンツに移動

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

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に標準で搭載されているべき機能だと思うので、お勧めします。

コメント

このブログの人気の投稿

数値入力

地味な話ばかり続きますが、仕事する上で大切な部分でもありますので、もうしばらくお付き合いをよろしく!
例えばオブジェクトまたはエレメントを移動する場合に決まった数値分移動すること
もあれば、移動してその移動距離を取得したいこともあります。
MODOやCINEMA4Dはマニピュレータを移動させると、マニピュレータの近くに移動した数値が表示されるので、どれだけ移動したかわかります。またMODOは移動のトランスフォームの項目でもわかります。MODOはほとんどのツールに数値が表示されるし、数値を制御できるので、大変便利だと思います。
MAYAはマニピュレータを移動すると移動した数値を表示する機能は基本的には多分ありません。しかしユニバーサルマニピュレータだけは移動量だけではなくオブジェクトのサイズも表示されます。また表示されている数値を変更するとその数値分移動、サイズ、回転します。マニピュレータのハンドルをクリックすると数値入力フィールドが出てきます。

すごく多機能で「大したことできそう」感が漂いますが、オブジェクトのバウンディングボックスに対しての操作だけなので大したことはできません。あまり使われていないからか、MAYA2015はシェルフにあったはずですが、MAYA2016ではメニューからしかアクセスできまん。
ではMAYAで移動した距離を取得する方法は?と一瞬考えましたがこれぐらいのことなら少し調べればmelで書けます。とにかくどこかに表示できればいいわけですしね。とは言ってもそんなことしている暇もないので、現状はスクリプトエディタに表示されるコマンドから移動距離を確認しています。

(はい、mel書かなくても表示できちゃいました。)
さて、次に移動させる数値がわかっている場合はマニピュレータで移動するよりは即数値入力が一番手っ取り早いわけです。MODOはWキーで移動ツールを起動して数値を入力してspaceキーまたはQキーで移動ツールを解除という流れになりますが、以前からこれ結構面倒な手順だなと思っております。
MAYAは数値入力で移動するにはステータスラインにある入力ラインが手っ取り早いです。

ハイパーシェードのアイコンの横にありますが、多分デフォルトでは畳んでありますので、ひっそり感はマックスです!また、見た目もかなり「大したことできなそう」です。
左にアイコンがあ…

照明器具きらきらテスト

裸体がページのトップに居座っているのもどうかと思うので、
ブログを更新して裸体を下へ作戦!

撮影でこういうキラッとした感じはレンズにクロスフィルターを付けて撮るわけです。
CGでは、Photoshopとかで加工するのが一般的なんでしょうけど、
トレーニングビデオなんだし、ひとつのアイデアとして、
modoで照明器具のキラキラを出してみました。

Redshift Render買いました。

GPUレンダラーは少なからず色々と機能に制限もありますし、個人的にはあまり評価していなかったのですが、近々モバイルワークステーションを導入するので主にそれ用ということでRedshift Render買いました。 購入予定のモバイルワークステーションのGPUはP5000なのでそこそこ使えるんじゃないかと思います。またThunderbolt3の外付けBoxにGPUカードを追加してデュアルGPUの運用も視野に入れています。
最近はGPUレンダラーも増えてきました。大半はアンバイアスレンダラーですが、Redshift Renderはバイアスレンダラーになっています。
例えて言うならV-RayをそのままGPUレンダラーにしたようなレンダラーなので、アンバイアスレンダラーよりかなり速いです。一見複雑な設定ではありますが、V-Rayを使い慣れている人ならそのスキルをそのまま応用できます。機能的にもV-Rayに負けず劣らずで使い易いレンダラーではないかと思います。