2008年02月26日

多階調フォーマットの効果 modo 301

さて、前回はディスプレイスメントマップについてあーでもないこーでもないとやってみたけど、今回もその続きだ。前回まではマップ用の画像として日頃馴染んだJPEGとかBMPとかを使っていた。だけどRGB各8bitで階調が0〜255の256段階しか無いって言うのは滑らかな曲面とかを表わすのにはちょっとキツイ。例えば平らな面に勾配をマップする時に勾配の高低差が128mmだったとすると、BMPやJPEGのマップの諧調では、高さ1mmの階段が128段あるような絵しか作れないわけだな。

そこで登場するのが16bitTIFFとかOpenEXR、HDRなどで、これらはRGBの各色について16bitとか、32bitとか、浮動小数点とかで物凄い数の階調を扱うことが出来る。これを使えばベイクの時に現れたモアレのような凹凸をかなり改善することが出来るようになるはずだ。

シーン例えばこんな感じに2枚のポリゴンを1辺だけ128mm離して斜面にしてオブジェクトからベイクを使って斜面のディスプレイスメントマップを作成してみると、その効果が確認できるはずだ。

手順GIFアニメで作業を撮ってみた。この作業でテクスチャを作成する時に浮動小数点を指定する事で滑らかなディスプレイスメントマップが得られる事が確認できた。ただし、それを記録できないフォーマットで保存して読み込みなおすと、とんでも無い事になる事も確認できた。そして、さらに驚くべき事に、ベイク時に出てくるレンダーウィンドウから画像を保存すると、保存画像がディザリング処理されちゃう事も判明したよ(後述)。

JPEG形式で保存した場合2左の画像は上のGIFアニメの手順で得られたレンダリング結果だ。何だか意味不明にガサガサになっている。これは保存する際になるべくオリジナルに近くなるように、modoが小数点以下の数値をディザリング処理してくれてるからなんだろうね。

JPEG形式で保存した場合1左の画像は同じようにベイクしたディスプレイスメントマップなんだけど、ベイク時点で保存しないで、シーンファイルと一緒にファイルメニューから「全て保存」を使って保存して、再び開いたもの。こっちは階段状の画像になっている。どうやら画像の保存も2通りあるみたいだね。こっちでは浮動小数点から整数に変換される時に単純に小数点以下の数値が丸められているようだ。いずれにしてもRGB各8bit256階調しか持たない画像フォーマットでは、斜面もこのような階段状になって現れてしまう事が確認できた。

同じ手順で他のフォーマットも試してみた。ここで意外な事がわかった。ベイク後のレンダーフレームから保存した画像は、どれもみなディザリングされてしまって開きなおすとガサガサな表面になってしまった。だからベイクしたものをこの時点で上書き保存しちゃダメなんだな。保存するなら画像タブから行うか、ファイルメニューからやらないと、せっかくの浮動小数点が台無しだ。

画像タグから保存ベイクした画像はこっちから保存ね。ちなみにいくら上書きしても*マークが消えないのは何故なんだろう?保存した後再読み込みすれば消えどね。
注)どうやらオブジェクトからベイクをすると上書きが出来なくなるようだ。保存する時は「別名で保存」かファイルメニューの「全て保存」で保存する必要があるようだ。

HDR形式で保存した場合これでHDRとか16bitTiffとかOpenEXRとかのファイル形式で保存すれば、無事に滑らかなディスプレイスメントマップ画像が得られるってわけだ。

以上の事からディスプレイスメントマップ画像は多階調表現が可能なファイルフォーマットで、画像タブまたはファイルメニューから保存する必要があることがわかった。それから新規にブランク画像を作る時は浮動小数点のチェックを忘れずにね。これを忘れると、どんな形式で保存してもグラデーションがガタガタの階段になっちゃうよ。再読み込みした時にどうなるかまでは検証していないけどね。

まあ自分の早合点かも知れないので各自で確認してみてね。

それではまた次回。

スクリプトまとめページ( Down Load はこちらから)  

カテゴリー別ページ 



take_z_ultima at 12:57│Comments(0)TrackBack(0)modo | CG

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives