2010年10月28日木曜日

luxとSLGのテクスチャとエミッタを調べてみた

blenderでテクスチャを貼ったデータをSmallLuxGPUやLuxRenderでレンダしてみたら
テクスチャが正しく表示されないことがあるのでいろいろテストしてみたり。

テストの結果からすると
・SLGではオブジェクトのエミッタがオンの場合テクスチャが無視されて表示されない
・SLG、lux共にテクスチャにアルファ付きのpngを使用すると透過情報が正しく反映されない
という状況っぽい。


やったテストはこんな感じ。
まずはテクスチャ用の画像を作成してアルファ付きのpngファイルとして保存。



でblender2.54でテクスチャを貼ったオブジェクトを作成して、テクスチャのuse alphaとemitの
ON/OFFを切り替えてレンダするとこうなる。



左からemit:OFF,alpha:OFF/emit:OFF,alpha:ON/emit:ON,alpha:OFF/emit:ON,alpha:ON。
blenderでレンダした場合はこんな感じにほぼ意図したとおりの結果に。


次に上記のシーンをrender_smallluxgpuを使用してSmallLuxGPUでレンダしたのが下の画像。
emitとalphの組み合わせはblenderのレンダ結果と同じ順。



最初の2つのemitを設定していない場合を見ると、alphaの状態にかかわらずpngの透過情報が反映されている。さらにテクスチャで無くオブジェクト自体がアルファ抜きされて肉が抜けている。
後ろ2つのemit有効の場合ではどちらもテクスチャが表示されていない。

という状況なのでSLGでテクスチャに使う画像は透過情報を持たないフォーマットの方が混乱が
少なくてよさそう。ただエミッタ設定とテクスチャが併用できないのはどうしようもないかなぁ・・・。


最後にLuxRenderでレンダするとこんな感じ。エクスポータはluxblend25、luxはv0.7.1開発版。
luxではテクスチャのもつアルファ情報の使用を切り替えるオプションがないので
アルファ無し、有り2種類のテクスチャ作成してレンダ。なので順番としては、左から
emit:OFF,alpha:無/emit:OFF,alpha:有/emit:ON,alpha:無/emit:ON,alpha:有。



テクスチャにアルファ有りのpngを使用した時の結果がおかしいのはSLGと同様。
ただしluxの場合はエミッタを設定していてもテクスチャは表示される模様。
面の周囲の黒い縁取りが表示されてないのはuv座標のオフセットがずれたのかも。
おそらくエクスポート時の設定で調整できるはず。


というわけで、普通に使うならおとなしくLuxRenderを使用するのが良さげ。
SmallLuxGPUは開発者向けのテスト兼デモプログラムという扱いなのであまり突っ込んでも
意味がないので、OpenCL対応という点では次のLuxRender v0.8に期待したいところ。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手