Blenderであそんでみた

3D-CGソフトBlenderの小技や豆知識など。

プリンシプルBSDFで異方性反射の使い方(5)/応用と補足と余談

f:id:hainarashi:20210916172736j:plain

※記事製作時のバージョン:Blender2.92

 

プリンシプルBSDFで、いろいろな質感表現の方法を探っていくシリーズ。
第18回は異方性反射の使い方その5です。
今回の記事では応用と補足と余談として、いろいろ雑多な解説をします。

 

異方性反射の記事は全部で5つあります。
(リンクから各記事にジャンプします)

  1. 旋盤加工の作り方
  2. ヘアライン加工の作り方
  3. スピン加工の作り方
  4. 異方性反射の基礎知識
  5. 応用と補足と余談(この記事)

 

異方性の応用

布の異方性反射

光沢のある布は、異方性を設定するとリアルな質感になります。

f:id:hainarashi:20210826104954j:plain

光沢のある布

 

これは繻子(しゅす)織りという織り方で、縦糸か横糸のどちらかだけが表から見えるように織られます。

それがヘアラインと同じ働きをして、異方性反射が生じます。

 

布のタンジェントは、タンジェントノード > タイプ:UVマップ で設定します。

f:id:hainarashi:20210828193907j:plain

光沢のある布のマテリアル

 

クロスシミュレーションをする場合は、シミュレーションの前にUVを展開しておきます。

f:id:hainarashi:20210828193636j:plain

布のUV展開

 

布の作り方についての詳細は、こちらの記事を参照してください。

hainarashi.hatenablog.com

 

異方性反射で立体感を出す

グラデーションのかかったテクスチャを元に異方性の回転に変化を付けると、立体感のある異方性反射が作れます。
下の動画はライトを回転させているだけですが、波打つような浮き上がるような、不思議な立体感になります。

vimeo.com

 

リングスピン模様に対して設定すると、本当に金属の輪が並んでいるような立体感になります。

vimeo.com

 

f:id:hainarashi:20210827180450j:plain

リングスピン模様の立体感設定

 

プロシージャルテクスチャを使った設定

異方性の回転やタンジェントは、プロシージャルテクスチャで設定することもできます。
こちらは、ノイズテクスチャでタンジェントを設定した見本です。

vimeo.com

 

上の動画は、

  1. Emptyの座標を元に、ノイズテクスチャでタンジェントを設定する
  2. Emptyを下に動かす

という手法で、タンジェントをアニメーションさせています。
このようにプロシージャルテクスチャを使うと、テクスチャアニメーションが簡単に作れます。

※テクスチャアニメーションの作り方についての詳細は、こちらを参照してください。

Cyclesで雨降りの作り方【Blender講座】 - 灰ならしのイラスト - pixiv

Blenderで雨降りの作り方【講座の補足】 - 灰ならしのイラスト - pixiv

 

下の画像は同じノイズテクスチャで、異方性は使わずに普通のノーマルマッピングで擬似凹凸を付けただけの場合との比較です。

異方性を使うと、このようなギラギラした反射が作れます。

f:id:hainarashi:20210829170552j:plain

異方性反射のギラギラ感

 

ノイズ以外のテクスチャでも、いろいろ面白い模様や効果を作ることができます。

f:id:hainarashi:20210914211551j:plain

マジックテクスチャでタンジェントの設定

 

f:id:hainarashi:20210914211557j:plain

ボロノイテクスチャでタンジェントの設定

 

f:id:hainarashi:20210915150139j:plain

波テクスチャで異方性の回転の設定

 

タンジェント設定時の注意点

タンジェントは、ハイライトが伸びる方向をベクトル(X , Y)で指定します。
このベクトルが (0 , 0) の場合、ハイライトはどの方向にも伸びないことになり、異方性が正しく設定できません。

f:id:hainarashi:20210914152559j:plain

(0 , 0) のタンジェント設定

 

次のような場合、タンジェントのベクトルが (0 , 0) になります。

  • ノーマルマップを流用する場合
    ⇒ ベイクの元オブジェクトが無い部分
  • バンプマップ(ハイトマップ)を流用する場合
    ⇒ テクスチャの明度が一定で、変化の無い部分

f:id:hainarashi:20210831102833j:plain

ノーマルマップの注意点

 

f:id:hainarashi:20210915160432j:plain

バンプマップ(ハイトマップ)の注意点

 

カーボンファイバークロスの作り方

カーボンファイバークロスは、炭素繊維を布状に織った素材です。
(以下「カーボンファイバー」と略します)
炭素繊維のくっきりした織目から生じる、異方性を伴った立体的な光沢が特徴です。

f:id:hainarashi:20210912151404j:plain

カーボンファイバークロス

画像出典:炭素繊維複合材 | K.SAKAI NEW PRODUCTS

 

カーボンファイバーの質感は、ヘアライン加工を応用して作ります。

まず、下のテクスチャ(3枚)を[右クリック > 名前を付けて保存]でダウンロードします。
ファイル名を、左から順に

  1. carbonfiber_anisoRot.png
  2. carbonfiber_height.png
  3. carbonfiber_hairline.png

に変更します。

f:id:hainarashi:20210831204618p:plain
f:id:hainarashi:20210831204626p:plain
f:id:hainarashi:20210831204637p:plain
カーボンファイバーのテクスチャ

 

1. carbonfiber_anisoRot.png を元に、異方性の基本設定をします。
この段階では立体感の無い、ただのギザギザ模様になります。
炭素繊維は材質的には非金属ですが、光沢が強い方がそれらしくなるので、メタリックを 1.0 にします。

f:id:hainarashi:20210915180834j:plain

基本設定

 

2. carbonfiber_height.png を元に、バンプマッピングで立体感を追加します。
また、ベースカラーにも変化を付けて、織目が下に潜り込む部分の色を暗くします。
※メタリックが 1.0 なので、ベースカラーが暗い部分は光沢も弱くなります。

f:id:hainarashi:20210915180840j:plain

立体感を追加

 

3. carbonfiber_hairline.png を元に、炭素繊維のディテールを追加して完成です。

f:id:hainarashi:20210915180847j:plain

ディテールを追加

 

f:id:hainarashi:20210915220119j:plain

マテリアルノード拡大図

 

コントラストや光沢が強すぎると感じる場合は、メタリックを 0.0 にします。
その際はスペキュラーマッピングを追加して、織目が下に潜り込む部分の光沢を消します。

f:id:hainarashi:20210915180901j:plain

メタリックを使わずに設定する場合

 

スペキュラーマッピングについての詳細は、こちらの記事を参照してください。

hainarashi.hatenablog.com

 

表面を透明樹脂でコーティングした質感にする場合は、クリアコートを追加します。
クリアコートについての詳細は、こちらの記事を参照してください。

hainarashi.hatenablog.com

 

補足:プリンシプルBSDFではできないこと

CDの虹色は作れない

CDやDVDは、見る角度や光の当たり具合によって、反射光が虹色に変化します。
この色変化は光の回折と干渉によるもので、「構造色」と言います。

プリンシプルBSDFでは、反射光の色を任意に変更できないので、構造色は表現できません。
こういう表現を作る場合は、異方性ノードを使います。

f:id:hainarashi:20210828194443j:plain

CDの虹彩表現

 

異方性ノードは、異方性反射を単体で設定するためのノードで、反射光の色を任意に設定できます。
Cycles限定で、EEVEEでは使えません。
回転とタンジェントの使い方は、プリンシプルBSDFと同じです。
ただし、プリンシプルBSDFと異方性ノードでは、同じタンジェントに対するハイライトの伸びる方向が 90° 異なります。
ハイライトの伸びる方向をプリンシプルBSDFと同じにするには、異方性ノードの回転の値に 0.25 を足して補正します(引いてもOK)。

f:id:hainarashi:20210829220129j:plain

同じタンジェントで、ハイライトの伸びる方向が 90° 異なる

 

ヘアラインを重ね合わせることはできない

現実のヘアライン加工では、異なる方向のヘアラインを重ね合わせることで、複雑に浮き上がるような模様を作る事ができます。

www.youtube.com

 

プリンシプルBSDFも異方性ノードも、1箇所に設定できるタンジェントは1方向だけなので、残念ながらこの表現はできません。

ひょっとしたら、複数のプリンシプルBSDF(または異方性ノード)をミックスしたら作れるかも知れませんが、未確認です。

 

余談:水面に発生する異方性反射

海に映る朝日や夕日が伸びて見えるのも、異方性反射によるものです。

f:id:hainarashi:20210913170236j:plain

水面に発生する異方性反射

 

これは水面の波が原因です。
水面を人の目線くらいの高さから見ると、波のへこんでいる部分が波自体によって隠され、波頭の部分だけが横に並んで見えるようになります。
これがヘアラインと同様の働きをして、異方性反射が生じます。

vimeo.com

 

旋盤加工やヘアライン加工など、固定のヘアラインから生じる異方性反射では、ヘアラインに直交する方向にハイライトが伸びます。
水面の異方性反射はそれとは異なり、常に視点方向にハイライトが伸びます。

vimeo.com

 

水面に限らず、凹凸のある表面では同様の現象が発生します。
大抵の物質の表面には大なり小なり凹凸があるので、横方向の角度からだとハイライトが伸びるように見えます。

この現象は、反射光を伴うシェーダーでは標準で表現されます。

f:id:hainarashi:20210914153503j:plain

凹凸のある表面での異方性

 

 

以上、応用と補足と余談でした。

 

※添削・構成アドバイス:相方

 

twitter

灰ならし (@hainarashi) | Twitter

 

参考サイト

シェーダ体系の話

ao;eth on Twitter : 異方性シェーダーはCDにも使えると...

 

カーボンファイバーの作り方は、こちらの2つの動画を参考にしました。

www.youtube.com

 

www.youtube.com