すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

TOP - テクスチャのMipmap化とカラースペース変換

Mantraやほかレンダラーでも推奨だったテクスチャのMipmap化がKarmaでも有効なようなのでメモ

MantraではRATファイルのみが有効でした(多分)。映像業界でよく使われているのがTiled EXRとtxファイルだと思います。

実際どのくらい差が出るのかと言われると難しいですが、高解像度テクスチャを大量に使用した場合のメモリ消費を抑えることができます。レンダリング時間が速くなるイメージがありますが、テクスチャでメモリを圧迫しない(スワップしない)おかげでレンダリングが速くなる感じだったと思います。

なので大規模なシーンでない場合はそれほど差が出ないはずです。※なぜかMantraはRATじゃないとレンダリング時間が数十倍かかる場合がある

hip

convertTiled_gd3.hiplc - Google ドライブ

5/6 ワークアイテムのカラースペース処理に致命的なエラーがあったので再アップ

5/3 アップしていたファイルのimaketxの引数に余計な処理足していたのを消し忘れたため再アップ

リニア化しない処理になるかなり影響大きいフラグなので注意

バッチコマンド

各レンダラーごとに変換ツールが内蔵されているはずですが、今回はHoudiniに付属するものを紹介

imaketx

Houdini 18.5?からHoudini変換用の新しいコマンドラインツールが同梱しました。

なのでこれを使用すればTiled EXRもしくはRATに手軽に変換でき、OCIOでのカラースペース変換も同時に行えます。

https://www.sidefx.com/docs/houdini/ref/utils/imaketx.html

iconvert

以前はiconvertで変換していましたが、こちらは確かOCIOでのカラースペースの変換ができなかったはずです。

https://www.sidefx.com/docs/houdini/ref/utils/iconvert.html

TOP

バッチコマンドで複数ファイルを処理するのはそれほど手間ではないですが、カラースペースの変換まで盛り込むとめんどくさそうだったのでTOPで組んでみました。

ちゃんと動いているかの試行回数はあまり多くないのでなにか問題あるかも。

ちょっと賢さが足りないですがこんな感じです。

実行するとこんな感じで指定フォルダに書き出します。(tiledフォルダ内)

Meta Dataを確認するとこんな感じ

使い方

TOP Network内に入ると一番上のCTRLという名前のNullにパラメーターが集約してあるので各種設定をします。

Search Directoryが変換したい画像が含まれるフォルダ、Outputが書き出し先フォルダです。

Export Formatは書き出し形式。

その他、

8,16biotと32bitの画像で処理が分かれます。

Search Formatで検索に含める拡張子を指定します。区切りは「|」です。

8,16bit場合はFile Nameでカラースペース変換をするテクスチャに含まれる文字列も別途指定します。

これは色情報はカラースペースを変換する必要があるが、それ以外は変換する必要がない(はず)だからです。

この部分は会社などでワークフローが整っていれば単純のはずですが、ダウンロードしてきたテクスチャなどはファイル名がぐちゃぐちゃなのでいっぱい指定しないといけません。

FromとToは変換前、後のカラースペースです。

各種設定をしたらTOP Networkを実行します。

仕組み

この部分でワークアイテムを拡張子(@extension)での分岐とFile名(@filename)での分岐を行い、colorspaceという配列を作り、各ワークアイテムごとに変換するカラースペースをいれます。

この段階で該当しないデータが階層にあってもワークアイテムとしては排除されます。

この部分でサブディレクトリのチェックを行い、書き出し先の階層(@out)を設定します。

この部分で実際にディレクトリを作成します。

最後にGeneric Generatorでimaketxを実行します。

実態はimaketxで、コマンドに渡すための引数をTOPで作成しています。

元データ(@pdg_input)とここに来るまでの処理で作成した書き出し先(@out)、元のファイル名(@filename)などを利用して基本のコマンドを作り、

Extra Argumentsでカラースペースのモード(-m "ocio")と、

カラースペースの引数(-c "from" "to")に最初に作成した配列(colorspace)を指定してワークアイテムごとに変わるようにしています。

COP

RATへの変換はCOPでも行えます。拡張子を.ratにして書き出すだけです。

ただしCOPはものすごく処理が遅いです。

※Tiled EXRは不可

参考

Textures - Arnoldpedia - Arnold Renderer

RATファイルについて 1 | インディゾーンHoudini情報日本語ブログ

RATファイルについて 2 | インディゾーンHoudini情報日本語ブログ