文系の blender 4.0 マテリアル | 布
CGは、メカニカルなものよりも不定形なものの表現が苦手だという固定概念があるせいか、きれいな皺のよった布が一枚置かれているだけで、シーンにリアリティが増す気がします。
ここでは、プリンシプルBSDFのプロパティを中心に、布/ファブリック系のマテリアルについて整理してみました。
環境 Blender 4.0.2 , Mac Mini M1 OS 14.2
基本
デフォルトのプリンシプルBSDF の ベースカラーを #877E77 とし、粗さ(Roughness)を 1.0 とした。これを基本とします。
やや単調な印象もあるが、形状のためもあり、じゅうぶん布にみえる。通常の布は表面に細かな起伏があるはずなので、粗さは 1.0 とすることが多い。
シーン(Sheen)
基本に加え、シーン > ウェイトを 1.0 とし、粗さを 1.0 とした。「粗さ」とは、表面のなめらかさではなく、チントのカラーの影響を表す数値( 1 = 100% )
チントカラー(#FFFFFF)の影響をうけて白味を帯びている。サンプルは若干布に厚みがあるものの、絹のような光沢のある質感を表現できる。
画像テクスチャ
基本に加え、ベースカラーに、実際の布の画像テクスチャを接続した。画像データは、SketchUpTEXTUREから入手した。
基本的で手軽な方法だが、やはりリアリティは増している。特別なタイプの布や、布だけクローズアップするのでないかぎり、通常はこれで問題ないだろう。
画像テクスチャ + ノーマルマップ(Normal Map)
画像テクスチャのみでも不足ないことが多いが、布の種類によっては光の反射が均一でないほうがリアリティがある。
ここでは、Architextures から入手したフェルトの画像を、ベースカラーおよび、ノーマルマップ - ノーマル に接続した。
光沢に変化が生まれ、フェルト生地のようなやや毛羽立った布の雰囲気を表現できる。
アルファ(Alpha)
基本に加え、ベースカラーを#EEEEEE に変更し、やや縦に引き伸ばしたノイズテクスチャを、アルファ に接続した。
透明度を適宜調節することで、薄手の木綿生地や、カーテン生地などにも利用できそうだ。
粗さ + バンプ(Bump)
布の粗さは通常あまり低くすることはないが、ここでは粗さを 0.4 とし、ノイズテクスチャを、バンプ - ノーマルへ接続し、若干の凹凸をつけた。
鏡面反射も増えて革のような質感になる。ソファなどにも利用できるだろう。ベースカラーにはノイズテクスチャでやや濃淡をつけている。
ディスプレイスメント + バンプ(Bump)
Tiling Textures から入手したニット織りの画像テクスチャを、ディスプレイスメント - ディスプレイスメントに、および、バンプ - ノーマルに接続した。
ディスプレイスメントで厚みも増し、ニットなど編み物の雰囲気が出ている。セーターや、カーペットにも利用できそうだ。
パーティクルヘアー
毛布や毛皮などの表現には、パーティクルヘアー機能を使う。
ここでは具体的な作成方法は述べないが、ヘアの長さ、太さの変更と、ヘアダイナミックス > 構造 > ランダム でヘアの方向に若干の変化を加えた他はほぼデフォルトの設定。
下は、マテリアルに「ヘアBSDF」を適用し、ヘアをやや長くして、パーティクル編集モードでブラシがけ(グルーミング)を行った。
パーティクルヘアーは若干習得に時間がかかるのと、レンダリング処理に負担をかけるのが難点だが、上のような表現には欠かせない。
まとめ
布は身近なものだが、CGでは、クロスシミュレータやスカルプトを使ったモデリングもやや難易度が高く、リアルな質感を表現するにもひと工夫が必要です。
それだけに、CGクリエータの腕のみせどころ、のような一面もあるかもしれません。上のサンプルは、可能なかぎりシンプルなノードで作成しているため、要素の追加や改善の余地がたくさんあるでしょう。参考になれば幸いです。
この記事が気に入ったらサポートをしてみませんか?