syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

LightWaveで色付き半透明マテリアル

LightWaveの基本マテリアルエディタではカラー設定ができるのはMetasequoia同様1か所だけで、Shadeのように半透明色を指定することはできません。色付きのガラスや液体を作るためには、ノードエディタを使います。
v9.2以降のLightWaveでは[Materials]→[Dielectric]というシェーダープリセットが用意されているので、このノードを追加して[Material]を接続し、[Color]や[Absorption]、[Refraction Index](Index of Refraction, IOR=屈折率)を設定していきます。[Partial Internal Reflection](部分内部反射)にチェックを入れると内部の反射が出る模様(対義語はTotal Internal Reflection、内部全反射)。反射のハイライトの出方は[Roughness]で制御できるようですがよく分かりません(汗)。なお、これらのノードエディタでの設定はOpenGLプレビューには反映されないので、レンダリングしながら調整していく必要があります。
ちなみにdielectricというのは「誘電体」という意味で、ガラスや水のような屈折率を持つ透明物体を表現するのに適しているようです。
他にも金属表現に適した[Conductor]プリセットも用意されています。conductorはもちろん「導体」という意味です(水は不純物が混じると導体になりますが、超純水などの例にみられるように理論的には不導体=絶縁体です)。

https://sygh-jp.github.io/content_hosting/illust/dielectric_test_2014_01_31a.png

左はConductor([Specularity] = 90%, [Roughness] = 0%)、右はDielectric([Absorption] = 0.3, [Refraction Index] = 1.5)を適用して、レイトレース+コースティクスを有効にしてLightWave v9.6でレンダリングしたものです。
光源はポイントライト1灯、コースティクスは[明るさ] = 10000%、[緻密さ] = 100、[柔らかさ] = 10に設定。チタン合金とガラス球のような感じになりました。右のDielectricのほうは明るさ1000%くらいでもはっきりとコースティクスが出ているのが分かるんですが、左のConductorのほうはかなり上げないとぼんやりとしか見えません。影の設定はもう少し改善の余地ありです。

なお、複数の[Material]をAlphaブレンドする場合は[Material Mixer]というのを使うようですが、色付きの液体やガラスに対して強いハイライトを入れたい場合は、[Dielectric]シェーダーを適用したメッシュを、Specularのみ適用した透明の薄いメッシュで覆う(わずかに押し出したシェルを別途作成する)のがよさそうです。もしくはマルチパスレンダリングで合成する方法があるのかもしれませんが、これに関しては調査中。
色付きの半透明マテリアルの正確な再現に関しては、下記の3ds Max用ヘルプとして記述されているmental ray用のヒントが参考になりそうです。
3ds Max Help: Arch & Design マテリアル(mental ray) – ヒント (2013)
3ds Max のヘルプ: Arch & Design マテリアル(mental ray) – ヒント (2014)

実は[Shaders]→[Specular]→[Phong]と、[Shaders]→[Transparency]→[Refractions](Tint RefractionsをONにする)を組み合わせても、色付きの屈折シェーダー+スペキュラーハイライトは実現できるのですが、上記のヒントで説明されているように、物体の厚みが考慮されません。逆にDielectricでは厚みが考慮された色付き屈折シェーディングになるようなのですが、スペキュラーハイライトは出ません。

LightWave 11.6ではCgFXシェーダーが実装されているのですが、こういったDielectricやConductorも一定のクオリティでプレビューできるようになっているのでしょうか? であれば移行する価値は十分にありそうです。ていうかv9のUIとWindows Aeroの相性が悪すぎていいかげんイライラしてきたのでさっさと移行します。しかしCgはすでに公式に非推奨になってるのに*1、新バージョンでCgFXを採用したLightWave開発チームは頭おかしいんじゃないかと……せめてGLSLにしてください><

ちなみに神風動画がLightWaveを使っているのは昔から有名な話なんですが、ジョジョOPの制作にはLW11のVPRが使われているそうです。
演出で観る者を魅了する! TV アニメ『ジョジョの奇妙な冒険』OP ムービー | FEATURE | CGWORLD.jp

*1:Adobe PhotoshopではCS4以降でOpenGLによるプレビューのGPUアクセラレートが実装されているんですが、CS5のモジュールを調べてみたらどうもNVIDIA Cgが使用されているようです。つまりAdobeもGLSLは使ってません。NV CgはMayaやPS3でも使われていて、クリエイターにとってなにげに縁の下の力持ちなんですが、開発終了の憂き目にあっている哀れな子……