ParaViewに布のマテリアルを追加
By K.Yoshimi
はじめに
この記事では、オープンソースの可視化ソフトウェアであるParaViewに OPSRayマテリアルを追加する方法を紹介します。
例として、布のシミュレーション(クロスシミュレーション)の結果に対して、新規の織物用マテリアルを設定します。
布のシミュレーション
布のシミュレータはたくさんありますが、ここでは、 ARCSim-HYLCを使用します。
ARCSim-HYLCは、Siggraph 2020で発表されたもので、均質化手法を用いて糸レベルの布の効果を、 マクロな材料特性としてモデル化します。そして、このモデルを使用することにより、織物の剛性や編み物の大変形、 異方性などを忠実に再現でき、さらに、糸レベルのシミュレーションより高速な計算が可能です。
ARCSim-HYLCのプログラムの中に、30cm×30cmの正方形のバスケット織(basket)とメリヤス編み(stockinette)の布を 球にかぶせるシミュレーションの例題
- basket_drapeX
- stock_drapeX
があるので、実行してみました。
結果は下のようになりました。
織物素材は硬くなりがちな様子が、また、メリヤス編みは、自由に垂らしたときに境界で丸まってしまう様子が再現されています。
レイトレーシングによる描画
布のシミュレーションでは、描画も布らしくする場合が多いので、 ParaViewを使用して、織物や編み物の画像を形状に貼り付けてみましょう。
バスケット織のマテリアル
バスケット織の形状には、既存のマテリアルPBR_Fabric_Greeen設定しますと織物らしくなります。
すなわち、下記のように設定します。
- Pipeline Browserでbasket_drapXの形状を選択
- Propertiesタブ > Ray Tracing > Matrial > PBR_Fabric_Greeenを選択
さらに、PropertiesタブのRay Traced Renderingにおいて
- Enabled Ray Tracing:チェックを入れる
- Back End: OSPRay pathtracerを選択
- Samples Per Pixel: 5を入力 (描画が不鮮明な場合は数値を増やす)
以上の設定で、下図のように織物の画像が形状にマッピングされます。
メリヤス編みのマテリアル
一方、メリヤス編みに対応するマテリアルは存在しません。
そこで、ParaViewのMaterial Editorを用いて、 新規にマテリアルを追加します。
まず、メリヤス織のマテリアルをネット上から探します。
例えば、fabric-knitted-002がよさそうですので、 これをマテリアル用の画像としてダウンロードします。
❗ ダウンロードの仕方は分かりずらいですが ページの下の方にある「DOWNLOAD ALL THE MAPS」アイコンをクリックします。
ダウンロードしたものは解凍し、ParaViewのインストール先の下記に置きましょう。
"ParaViewのインストール先"\materials\textures\
次に、Material Editorを開きます。
View > Material Editor
をクリックすると、右側にMaterial Editorが現れます。
Materialの追加は、Material Editorにおいて
- 上方の「+アイコン」をクリックすると、New Material窓が開く
- Material Name:PBR_Fabric_Knittedと入力
- Material Type:principledを選択
- OK
とします。
それから、テーブル横の「+アイコン」をクリックして、下記の属性に上記でダウンロードした画像をそれぞれ割り当てます。
- map_baseColor:Fabric_Knitted_002_COLOR.jpg
- map_baseNormal:Fabric_Knitted_002_NRM.jpg
- map_roughness:Fabric_Knitted_002_ROUGH.jpg
以上で、新しいマテリアルPBR_Fabric_Knitteが追加されました。
それでは、新しいマテリアルをメリヤス編みの形状に割り当てましょう。
- Pipeline Browserでstock_drapeXの形状を選択
- Propertiesタブ > Ray Tracing > Matrial > PBR_Fabric_Knitteを選択
さらに、PropertiesタブのRay Traced Renderingにおいて
- Enabled Ray Tracing:チェックが入っていることを確認
すると、メリヤス形状に新しいマテリアルのPBR_Fabric_Knitteが貼り付けられました。
しかし、編み目が大きいようです。
このような場合は、Texture座標の変数TCoordsを、Python Calculatorで適当な値でスケーリングします。
- Pipeline Browserでstock_drapeXの形状を選択
- Filters > Alphabetical > Python Calculator
としてから、
- Expression: TCoords*10/3
- Array Name: TCoords
としますと、編み目の大きさがよくなります。
以上のマテリアル設定で、動画に保存すると下記のようになります。
影はやや不自然ですが、織物や編み物の模様がマッピングされ、前よりも分かりやい描画となりました。