※記事製作時のバージョン:Blender2.92
プリンシプルBSDFで、いろいろな質感表現の方法を探っていくシリーズ。
第16回は異方性反射の使い方その3です。
今回の記事ではスピン加工の作り方について解説します。
異方性反射の設定方法は、他のパラメーターに比べてかなり独特で、説明する内容も多くなります。
1回の記事ではまとめきれないので、次のように段階を踏みながら説明します。
(リンクから各記事にジャンプします)
- 旋盤加工の作り方
- ヘアライン加工の作り方
- スピン加工の作り方(この記事)
- 異方性反射の基礎知識
- 応用と補足と余談
スピン加工とは?
金属の表面処理のひとつで、同心円状のヘアラインをたくさん並べて模様を作る仕上げ方法です。
英語では "circular brushed" と言います。
実際のスピン加工を見たい方は、こちらの動画をどうぞ。
主な用途は、テーブルの天板とトラックの内外装(トラックアート・デコトラ)です。
画像出典:ガーデン丸アルミテーブル【カメリア -CAMELIA-】(ガーデン 丸 テーブル 60幅) :SH-05-65037:コンパネ屋 Yahoo!ショップ - 通販 - Yahoo!ショッピング
スピンの形や大きさ、並べ方などを変えることで、いろいろな模様が作れます。
下の画像は、上記リンク(美光技研のHP)で紹介されている見本の一部です。
スピン加工の作り方
スピン加工はノーマルマッピングを流用して設定します。
ノーマルマッピングは、面の向きを記録した特殊なテクスチャ(ノーマルマップ)を元に、面の向きを擬似的に変更する手法です。
ノーマルマップを、ノーマルノードを通してタンジェントにつなぐと、面の向きのベクトルが異方性反射の方向として扱われる、という仕組みです。
仕組み的にはバンプマッピングでも作れますが、ノイズが発生します。
ノーマルマッピングではノイズは発生せず、綺麗に仕上がります。
バンプマッピングでノイズが発生するのは、テクスチャ(ハイトマップ)の情報精度が足りないためです。
情報精度が足りないのは、スピン加工の場合、テクスチャをベイクで作るためです。
旋盤加工の作り方で紹介したようにプロシージャルテクスチャを使えば、情報精度が充分なのでバンプでも綺麗に仕上がります。
ウロコ模様
実際にウロコ模様を作ってみましょう。
まず、ノーマルマップの元になるオブジェクトを作成します。
1. 追加 > メッシュ > 円柱
2. 編集モード > 上下の面を削除
3. 編集モード > 上の円の頂点を選択 > スケール:0.0
4. 編集モード > すべての頂点を選択 > スケール Z:0.1
以後、このオブジェクトを「円錐」と呼びます。
5. スケール:0.9
6. オブジェクト > スムーズシェード
7. ノーマル > 自動スムーズ > ON
8. モディファイアーを追加 > サブディビジョンサーフェス
- レベル:レンダー > 4
これで、円錐のサイズが少し小さくなり、面が滑らかになります。
9. 下の画像のように、円錐を複製して配置する
10. Shift を押しながら、すべての円錐を選択 > 統合(ショートカット:Ctrl + J)
これで、元になるオブジェクトができました。
次にノーマルマップをベイクします。
11. 画像エディターから、テクスチャを新規作成
- 名称:uroko_tangent
- 幅:2048px , 高さ:2048px
- アルファ > OFF
- 32ビット浮動小数点 > ON
12. 追加 > メッシュ > 平面
- 位置 X:0.0m , Y:0.0m , Z:-0.5m
13. 平面のマテリアルを作成 > 画像テクスチャノードを追加 > "uroko_tangent" を選択
- 色空間:Non-color
画像テクスチャノードはマテリアル内に配置するだけでOKです。
他のノードにつなぐ必要はありません。
14. Shift を押しながら、円錐 ⇒ 平面 の順に選択
15. レンダーエンジン > Cycles
- サンプリング > レンダー:1
16. 以下の設定をして、ベイクを実行する
- ベイクタイプ > ノーマル
- 選択物 → アクティブ > ON
- ケージ > ON
- ケージを押し出し:2m
17. 画像エディターから、ベイクされたテクスチャを .png 形式で保存
これでノーマルマップができました。
下の画像のように設定すると、ウロコ模様の完成です。
※ノーマルマップの色空間は Non-color にします。
※タンジェントに流用する場合、ノーマルマップノードの強さは結果に影響しません。
0.0 以外はすべて同じ結果になるので、初期値の 1.0 のままでOKです。
リングスピン重ね模様
リングスピン重ね模様は、次の2つのテクスチャで作ります。
では、ノーマルマップから作ってみましょう。
1. ウロコ模様の 1~4 の手順で円錐を作る
2. 編集モード > ループカット(Ctrl + R)で、好みの位置にカットを入れる
3. 編集モード > 中心の頂点を削除
以後、このオブジェクトを「リング」と呼びます。
4. オブジェクト > スムーズシェード
5. モディファイアーを追加 > サブディビジョンサーフェス
- ビューポートのレベル:4
- レベル:レンダー > 4
6. サイズ X:2.0m , Y:2.0m
サブディビジョンサーフェスで角を滑らかにする影響で、円の直径が少し小さくなってしまいます。
2m間隔で隙間なく並べたいので、サイズを修正します。
7. 下の画像のように、リングを複製して配置する
8. Shift を押しながら、すべてのリングを選択 > Ctrl + J(統合)
後はウロコ模様と同じ手順・設定で、ノーマルマップをベイクします。
画像テクスチャの名前は "ringspin_tangent" にします。
次に異方性マッピング & ラフネスマッピング用の白黒テクスチャを作ります。
9. リングのマテリアルを作成 > ベースカラーを白(V=1.0)にする
10. 追加 > メッシュ > 平面
- 位置 X:0.0m , Y:0.0m , Z:-0.2m
- スケール:2.0
11. 平面のマテリアルを作成 > ベースカラーを黒(V=0.0)にする
12. Shift を押しながら、平面とリングを選択 > Ctrl + J(統合)
リングにかかっているサブディビジョンサーフェスの効果が平面にも出ますが、問題ありません。
13. 画像エディターから、テクスチャを新規作成
- 名称:ringspin_aniso
- 幅:2048px , 高さ:2048px
- アルファ > OFF
- 32ビット浮動小数点 > OFF
ノーマルマップとは異なり、32ビット浮動小数点はOFFのままにします。
14. ベイク用の平面のマテリアル > 画像テクスチャノード > "ringspin_aniso" に変更
- 色空間:Non-color
15. Shift を押しながら、リング ⇒ 平面 の順に選択
16. 以下の設定をして、ベイクを実行する
- ベイクタイプ > ディフューズ
- 影響 > 寄与
直接照明 > OFF
間接照明 > OFF
カラー > ON
その他の設定はノーマルマップのベイクと同じです。
17. 画像エディターから、ベイクされたテクスチャを .png 形式で保存
これで異方性マッピング & ラフネスマッピング用の白黒テクスチャができました。
下の画像のように設定すると、リングスピン重ね模様の完成です。
※粗さ(ラフネス)は、範囲マッピングノードで 黒 ⇒ 0.1 , 白 ⇒ 0.5 に変換しています。この値は好みで変更します。
ヘアラインディテールの作り方
スピン加工にヘアラインディテールを追加すると、より質感が良くなります。
ディテールは次の手順で作ります。
1. 追加 > メッシュ > 円柱
2. 編集モード > 上下の面を削除
3. 円柱を正面から見る視点に合わせ、UV展開 > 円筒状投影
4. 円柱のマテリアルを作成 > 下の画像のように設定
この円柱を元に、模様の元オブジェクトを作成します。
ディフューズのカラーをベイクします。
手順・設定は、リングスピン重ね模様の異方性マッピング & ラフネスマッピング用の白黒テクスチャと同じです。
画像テクスチャの名前は "***_hairlineVector" にします。
ウロコ模様の場合、下の画像のように設定すると、ヘアラインディテールが追加されます。
リングスピン重ね模様の場合は、下の画像のように設定します。
なお、ヘアラインディテールは、模様をアップで映す場合のみ有効です。
下の画像はディテールを設定していますが、つぶれて見えなくなっています。
こういう場合はディテールは省略した方が、レンダリングが早くなります。
補足
ノーマルマップの面の傾きについて
ノーマルマッピングをタンジェントに流用する場合、面の傾きの大きさは結果に影響しません。
下の3種類のノーマルマップは、タンジェントに適用するとどれも同じ結果になります。
円錐やリングの高さは、自由に設定してOKです(0mは除く)。
サンプリング数について
下記はdskjalさんのブログからの引用です。
サンプル数をあげても法線のベイクの品質にはほとんど影響しない。
なのでレンダリングのサンプル数を1にすることで、ベイクを高速に実行できる。
引用元:Blender で法線のベイク
ディフューズのカラーだけをベイクする場合も同じ事が言えるので、今回のベイクではどれもサンプリング数を 1 にしています。
「ケージを押し出し」について
平面からどこまでをベイクするかの範囲です。
元オブジェクトの高さに合わせて、値を調整します。
広く設定する分には問題ありません。
(余裕を取り過ぎるとベイクに時間がかかる気がしますが)
私が下の模様をベイクした際は、竜ウロコと竜線ウロコは11m、その他は2mに設定しました。
32ビット浮動小数点(32bit Float)について
32ビット浮動小数点テクスチャは、精度の高い情報を記録できるテクスチャです。
ノーマルマップを通常の24ビットテクスチャで作成すると、情報精度が不足して仕上がりが悪くなるため、必ず32ビット浮動小数点テクスチャで作成します。
手っ取り早くスピン加工を使いたい場合は
今回解説したものを含めた8種類のスピン加工のマテリアルを、BOOTHで無料配布しています。
各パターン毎に、ヘアラインディテールあり・なしのバージョン違いを用意しています。
以上、スピン加工の作り方でした。
※添削・構成アドバイス:相方