※記事製作時のバージョン:Blender2.92
プリンシプルBSDFで、いろいろな質感表現の方法を探っていくシリーズ。
第14回は異方性反射の使い方その1です。
今回の記事では異方性反射の代表格、旋盤加工の作り方を紹介します。
異方性反射とは、簡単に言うと「一定方向のキズや溝が沢山あると、反射光(ハイライト)が帯状に伸びて見える」現象のことです。
主な例として、次のようなものがあります。
- 旋盤加工
- ヘアライン加工
- CDやDVDの裏面
- アナログレコードの盤面
- 髪の毛の光沢(天使の輪)
異方性反射の設定方法は、他のパラメーターに比べてかなり独特で、説明する内容も多くなります。
1回の記事ではまとめきれないので、次のように段階を踏みながら説明していきます。
- 旋盤加工の作り方(この記事)
- ヘアライン加工の作り方
- スピン加工の作り方
- 異方性反射の基礎知識
- 応用と補足と余談
多いな!
でもそれくらい、異方性反射は独特なのです。
旋盤加工とは?
金属加工の一種で、
- 加工する金属を高速で回転させる
- それに刃物を押し当てて、目的の形に削り出す
という方法です。
実際の旋盤加工を見たい方は、こちらの動画をどうぞ。
基本的に円形、または円筒形の仕上がりになり、表面には非常に細かい同心円状の削り痕が残ります。
よく見かける旋盤加工品に、ステンレス鍋やステンレスボトルがあります。
目に付かないところでは、腕時計の裏蓋やエンジンのピストンなど、様々な機械部品が旋盤加工で作られています。
プリンシプルBSDFで旋盤加工を表現するには、次の3つを設定します。
- メタリック:1.0
- 異方性:1.0
- 異方性の回転:0.25
今回の記事では「異方性」と「異方性の回転」について説明します。
メタリックは金属の質感を出すために使用しています。
詳細はこちらの記事を参照してください。
異方性
反射光を異方性反射に切り替えるパラメーターです。
「0」で普通の反射、「1」で異方性反射になります。
残念ながら、異方性反射はCycles限定で、EEVEEでは使えません。
マテリアルで異方性を設定していても、EEVEEでは普通の反射で描画されます。
なお、マテリアルプレビューはEEVEEで描画されます。
レンダーエンジンをCyclesにしていても、マテリアルプレビューでは異方性反射は描画されません。
異方性反射を画面上で確認するには、レンダープレビューで表示するか、実際にレンダリングする必要があります。
異方性は「0~1」の中間値を入力することもできます。
特に制限や決まりは無いので、好みで決めます。
だいたい「0.7~1.0」くらいの範囲が良いと思います。
粗さが「0」の場合、異方性は無効になります。
- 異方性は、散乱反射光の反射方向に偏りを持たせる
- 粗さが「0」の場合は鏡面反射のみになり、散乱反射成分が無くなるため、異方性は効果を失う
・・・という仕組みではないかと思います(ただの推測ですが)。
異方性は、スペキュラーとメタリックの反射光に効果があります。
その上にシーンやクリアコートを追加することで、次のような使い方ができます。
- 異方性 + シーン
⇒ ツヤのある布の表現 - 異方性 + クリアコート
⇒ 異方性反射のある物体の表面をコーティングした表現
なお、異方性は伝播の反射光には効果が無いので、「削り出しのガラス」は作れません。
異方性の回転
異方性反射のハイライトが伸びる方向を回転させるパラメーターです。
「0~1」が 0°~360°に対応します。
最初に設定した「0.25」という値は、90°回転させるための設定です。
詳しい働きについては、異方性反射の基礎知識で説明します。
旋盤加工を作る場合の注意点
注意点 1
異方性反射の方向は、オブジェクトの「ローカル座標系Z軸」を基準に設定されます。
そのため、オブジェクトを回転させても反射の方向は変わりません。
しかし、編集モードでメッシュを回転させると、反射の方向が変わります。
異方性反射の基準軸を変更したい場合は、タンジェントノードをタンジェントに接続します。
タンジェントノードは、オブジェクト全体の異方性反射の方向を変更するノードです。
変更できるのは X , Y , Z軸方向だけです。
- 全体ではなく、部分的に異方性反射の方向を変更したい
- X , Y , Z軸ではなく、任意の方向に変更したい
という場合は、異方性反射の方向をタンジェントマッピングで設定します。
タンジェントマッピングによる設定方法は、次の項目で説明します。
注意点 2
異方性反射が放射状に広がる中心は、「ジオメトリ(オブジェクトの立体形状)の中心」です。
そのため「鍋に柄をつける」などでジオメトリの中心位置がずれると、異方性反射の中心もずれます。
<対処方法 1>
鍋本体と柄を別オブジェクトにして、親子関係にします。
マテリアル設定的には簡単ですが、オブジェクトの管理は煩雑になります。
<対処方法 2>
柄まで含めたひとつのオブジェクトにして、異方性反射の方向をタンジェントマッピングで設定します。
タンジェントマッピングによる設定方法
「タンジェント」は、異方性反射の方向を設定するベクトルです。
ここではバンプマッピングを流用してタンジェントを設定する方法を紹介します。
まず、旋盤加工にしたい部分をUV展開します。
- 円形を正面から見た視点に合わせる
- UV > ビューから投影(バウンド)
下の画像のようにマテリアルを設定すれば旋盤加工になります。
※この設定では、異方性の回転は「0」にします。
※タンジェントに流用する場合、バンプの強さは結果に影響しません。
「0」でなければすべて同じ結果になるので、初期値の「1」のままでOKです。
バンプマッピングは、テクスチャの明暗を元に面の向きを変える手法です。
グラデーションテクスチャ(球状)を元にした場合、面の向きは中心から外に広がる放射状になります。
これをタンジェントにつなぐと、面の向きのベクトルが異方性反射の方向として扱われ、中心から外に広がる放射状の異方性反射になる、という仕組みです。
円に対して垂直な側面は、UV内で完全に潰れて、面積を持ちません。
そのためグラデーションテクスチャが反映されないので、異方性反射も生じなくなります。
こういう場合は、次のように操作します。
- 上面か底面、どちらかの面を縮小してUV展開する
- 縮小した面を元に戻す
これで側面にも異方性反射が生じるようになります。
ちなみに、このバンプマッピングを流用する方法の場合、ローポリでは異方性反射に奇妙な不連続が生じます。
異方性反射を滑らかにするには、モディファイアー「サブディビジョンサーフェス」の細分化レベルを充分に上げて、曲面を滑らかにします。
以上が「バンプマッピングを流用したタンジェントの設定」ですが、この方法には欠点があります。
まず、サブディビジョンサーフェスが必要な分、レンダリング時間が長くなってしまいます。
また、例えば「アンプのつまみに異方性反射を設定する」ような場合、アンプ本体にもサブディビジョンサーフェスの影響が出てしまいます。
そのため、つまみ以外のすべての辺にクリースを設定するなどの手間が増えます。
ではつまみを別オブジェクトにすれば良いかというと、それはそれでオブジェクトが増えて煩雑になります。
理想は、UVを元にローポリでも綺麗な旋盤加工が設定できることです。
しかし残念ながら、今の私の知識と技量ではその方法を見つけられませんでした。
もっと良い設定方法をご存じの方、ぜひ教えてください!
補足:旋盤の削り痕ディテールの作り方
異方性の設定では反射光が変化するだけです。
旋盤の削り痕のディテールが欲しい場合は、ベースカラーとバンプマッピングで表現します。
- 削り痕をつけたい部分をUV展開する(バンプマッピングを使った旋盤加工と同じ要領)
- 下の画像のようにマテリアルを設定する
金属の色(ベースカラー)を変える場合は、RGBミックスノードの第1カラーを変更します。
削り痕の細かさは、ノイズテクスチャのスケールで設定します。
ノーマルにつなげるバンプは、オブジェクトのサイズによって効き具合が変わるので、強さを適宜調整します。
以上、旋盤加工の作り方でした。
※添削・構成アドバイス:相方