蛍光灯のモデリング


蛍光灯をモデリングします。

今回は、発光体についての説明になります。
マテリアルにテクスチャマッピングは行わない形状となるため、UV調整は不要です。
以下のようなサイズにしました。

蛍光灯をモデリング

分かりやすいように部品ごとに展開すると以下のようになります。

大きく以下に分かれています。

  • 外装 (側面、上面、底面)
  • 蛍光灯
  • 正面の半透明のプラスチック
  • 紐の先端

それぞれの形状はそれほど複雑ではありません。
外装の上面のみポリゴンメッシュ、それ以外は自由曲面と回転体を使用しました。

外装 (側面、上面、底面)

上面の板を直方体のポリゴンメッシュで生成しています。

側面側の面は不要のため、形状編集モード+面選択モードに移行し面を選択し削除します。

形状編集モード+稜線選択モードに移行し、X軸に平行な稜線を選択してエッジベベルを実行します。
ツールボックスで「編集」-「メッシュ」-「編集」-「ベベル」を選択し、
ツールパラメータの「サイズ」を0.6、分割数を0として面取りしました。

ブラウザでこの形状を「上面」と名前変更しておきます。

側面部を自由曲面でモデリングします。
右面図で「閉じた線形状」で断面を作成します。

自由曲面パートを作成し、そのパート内に「閉じた線形状」を入れて複製 + 拡大縮小で立体にしていきます。

分かりやすいように、マーカー色を指定しています。
自由曲面パート内の先頭と末尾の「閉じた線形状」を複製し「一点に収束」で閉じるようにしました。
このような自由曲面のモデリングは「水道の蛇口のモデリング」と同じになります。

この自由曲面の名前を「側面」に変更し、複製して「上面」の両端に配置するようにします。

底面部を自由曲面でモデリングします。
見やすいように、ブラウザで「側面」形状を非表示にしました。
右面図で「開いた線形状」の断面を作成します。「L」を左右反転させたような形状になります。
自由曲面パートを作成し、そのパート内に「開いた線形状」を入れて複製します。

この形状は厚みがないため、外側が表、内側が裏になるように確認します。
表示オプションで「両面(裏面カラー)」としておくと表裏はチェックしやすいです。
この形状を「底面」と変更しておきます。

これで、上面/側面/底面は以下のようになりました。

蛍光灯

蛍光灯を自由曲面でモデリングします。単純な円柱になります。
円を配置し「閉じた線形状」に変換し、自由曲面パート内に入れます。
「閉じた線形状」を複製し-X方向に移動して円柱状にします。
自由曲面パートの先頭と末尾の「閉じた線形状」を複製し、「一点に収束」で閉じるようにしました。

自由曲面パートを「蛍光灯」と名前変更しておきます。

蛍光灯の両端に、金属の金具を付けます。
これは「蛍光灯」内の「閉じた線形状」を複製して利用するのがよさそうです。
自由曲面パートを作成し、「蛍光灯」と同様に以下のようにしました。

角部分は「閉じた線形状」を少し縮小して、角を面取りしています。

マテリアルは仮で与えています。
自由曲面パートを「蛍光灯_隅」と名前変更しておきます。
この「蛍光灯_隅」を複製し、「蛍光灯」の両端に配置します。

蛍光灯は以下のようになりました。

正面の半透明のプラスチック

正面を覆う、半透明のプラスチックの板を配置します。
これは自由曲面で作成しました。
右面図で、正面部を覆うように「開いた線形状」を配置します。
自由曲面パートを作成し、「開いた線形状」を自由曲面パート内に入れて複製し左右の端に配置します。

以下のように正面をぴったり覆うようにしました。

形状名を「正面」と名前変更しました。

紐と先端

紐の形状とその先端をモデリングします。
厳密には、底の面に穴を開けないといけないのですがそれは省略しています。
単純に円柱状の自由曲面です。

半径1mmの円を「閉じた線形状」に変換し、自由曲面パートに入れて複製し上下の端に配置しました。
高さは260mmとしました。
「紐」と名前変更しました。

先端は釣り鐘状にしています。回転体で作成しました。
正面図で「開いた線形状」を配置し、ツールボックスの「作成」-「立体化」-「回転体」を選択。
回転体の中心軸をドラッグで指定します。


「紐の先」と名前変更しました。

以上で、蛍光灯のモデリングが完了しました。

PBRマテリアルを割り当て (Professional ver.20 -)


マテリアルを8つの部位ごとに指定します。

  • 上面 (マスターマテリアル名 : 蛍光灯_上面)
  • 側面 (マスターマテリアル名 : 蛍光灯_側面)
  • 底面 (マスターマテリアル名 : 蛍光灯_底面)
  • 正面 (マスターマテリアル名 : 蛍光灯_正面プラスチック)
  • 蛍光灯 (マスターマテリアル名 : 蛍光灯_蛍光灯)
  • 蛍光灯_隅 (マスターマテリアル名 : 蛍光灯_隅)
  • 紐 (マスターマテリアル名 : 蛍光灯_紐)
  • 紐の先 (マスターマテリアル名 : 蛍光灯_紐の先)

PBRマテリアルの基本設定のみ使用し、マッピングは行いません。
それぞれのマテリアルについては単純なので列挙だけを行い、「発光」について後述します。

上面 (マスターマテリアル名 : 蛍光灯_上面)

ベースカラーをRGB(231, 231, 231)、メタリック 0.0、ラフネス 0.4、屈折率 1.5、透明度 0.0、発光 0.0、としました。

側面 (マスターマテリアル名 : 蛍光灯_側面)

ベースカラーをRGB(240, 240, 240)、メタリック 0.0、ラフネス 0.2、屈折率 1.5、透明度 0.0、発光 0.0、としました。

「上面」よりもわずかに光沢があるマテリアルにしています。

底面 (マスターマテリアル名 : 蛍光灯_底面)

ベースカラーをRGB(232, 232, 232)、メタリック 0.5、ラフネス 0.4、屈折率 1.5、透明度 0.0、発光 0.0、としました。

メタリックを0.5とし、少し反射を強めにして金属が若干入る表現にしています。

正面 (マスターマテリアル名 : 蛍光灯_正面プラスチック)

ベースカラーをRGB(240, 240, 240)、メタリック 0.05、ラフネス 0.3、屈折率 1.5、透明度 1.0、発光 0.0、としました。

透過のマテリアルにするため「透明度」を1.0とし、「メタリック」を0.05としてわずかに反射を与えています。
ざらついた感じのすりガラスのようなプラスチック表現を行っています。

蛍光灯 (マスターマテリアル名 : 蛍光灯_蛍光灯)

ベースカラーをRGB(244, 244, 244)、メタリック 0.0、ラフネス 0.2、屈折率 1.5、透明度 0.0、発光 0.0、としました。

なお、ここでの指定は消灯したときのマテリアルになります。

蛍光灯_隅 (マスターマテリアル名 : 蛍光灯_隅)

ベースカラーをRGB(228, 228, 228)、メタリック 1.0、ラフネス 0.2、屈折率 1.5、透明度 0.0、発光 0.0、としました。

金属のマテリアルになります。

紐 (マスターマテリアル名 : 蛍光灯_紐)

ベースカラーをRGB(204, 204, 204)、メタリック 0.0、ラフネス 1.0、屈折率 1.5、透明度 0.0、発光 0.0、としました。

紐の先 (マスターマテリアル名 : 蛍光灯_紐の先)

ベースカラーをRGB(242, 237, 215)、メタリック 0.0、ラフネス 0.2、屈折率 1.5、透明度 0.0、発光 0.0、としました。

プレビューレンダリングを行いマテリアルを確認

これらのマテリアルを与えた後、仮の背景をShade Explorerから指定してプレビューレンダリングします。

これは消灯している状態です。
背景のIBLと、無限遠光源を1つ割り当てています。
仮に読み込んだ背景を削除し、「蛍光灯.shd」としてシーンをファイル保存します。
次の「発光表現」は蛍光灯での発光の検証になります。

発光表現 (線光源を使用)

この状態から無限遠光源の「明るさ」を0にし、背景を削除するとシーンに光源が存在しないことになり、レンダリング結果は真っ暗になります。
ここで、蛍光灯を発光させていきます。
分かりやすくするために、地面として「閉じた線形状」を仮で配置しました。

PBRマテリアルの「蛍光灯_蛍光灯」の「発光」を1.0にします。

これは「パストレーシング(大域照明)」でプレビューレンダリングしていますが、光はほとんど地面には届いていません。

そこで、「発光」を99にしてみました(時間がかかるため、途中でプレビューレンダリングを中断しています)。
光が当たる箇所がより白くなるだけで、周囲にはほとんど影響していません。
またレンダリング時間も増大し、ノイズも増えています。

このように、PBRマテリアル(旧Shade3Dマテリアルでもそうですが)の「発光」はマテリアルの色を発光させるだけになり、
光源としての効果は弱いです。

そこで、蛍光灯の発光は「線光源」を使用します。
蛍光灯の中心に「開いた線形状」(下の画像の赤い箇所)を配置します。

ブラウザで「開いた線形状」を選択した状態で形状情報ウィンドウを表示し、「光源の種類」を「線光源」、「明るさ」を100.0とします。

この2つの指定により、線形状が光源となります。

次に、「蛍光灯_蛍光灯」のPBRマテリアルで内側の線光源がさえぎられないように調整します。

「発光」を1.0にします。
「その他」ボタンを押して、「その他の表面材質属性」ダイアログボックスの「影を落とさない」「影を表示しない」「他の形状を反射しない」「背景を反射しない」チェックボックスをオンにします。
こうすることで、内側の光源から見ると光がさえぎられない状態になります。
この場合は、「透明度」を1.0にして透明にする必要はありません。

プレビューレンダリングすると以下のようになりました。

地面に光が届いています。

線光源だけでは分かりにくいため、無限遠光源の「明るさ」をわずかにつけました。

発光表現 (面光源を使用)

線光源を使用せずに、円柱状の表面を光源としてみます。
蛍光灯の自由曲面をブラウザで選択し、ポリゴンメッシュに変換します。

上画像は、分かりやすいように「正面」の形状を非表示にしています。

形状編集モード+面選択モードで、ポリゴンメッシュの円柱の上面/底面を選択して削除します。

これは、円柱の側面だけを光源にするための操作になります。

ブラウザで対象のポリゴンメッシュが選択されていることを確認し、ツールパラメータで「線形状に変換」ボタンを押します。

ポリゴンメッシュの面が「閉じた線形状」に変換されました。

ブラウザで複数の「閉じた線形状」を選択し、形状情報ウィンドウを表示します。
「光源属性」の「可視」チェックボックスをオン、「明るさ」を100.0としました。
これにより、「閉じた線形状」が面光源となりました。

プレビューレンダリングすると以下のようになりました。

この蛍光灯の場合は表面全体が光源になることにより、線光源よりも光が届いています。
この方法については、ナレッジベースの「形状の表面を発光させたい」もご参照くださいませ。

発光表現 (イラディアンスキャッシュを使用)

※ 2020/04/10に追加しました。

上記の方法では、照らされた箇所で高周波ノイズが残ってしまいます。
大域照明で「パストレーシング」を指定し「イラディアンスキャッシュ」をオンにすることで、
表面材質で「発光」を割り当てている場合でも地面に光が届くようになります。
「発光」を6.0として「レンダリング設定」でプレビューレンダリングしました。

この方法については、ナレッジベースの「表面材質の「発光」で形状表面を発光させる(イラディアンスキャッシュを使用)」もご参照くださいませ。

光源については、チュートリアルの別テーマとして後々解説する予定です。

スタジオシーンでレンダリング

レンダリング結果の確認のため、スタジオシーンに外部参照として「蛍光灯.shd」をインポートします。
スタジオシーンについては、「アセットとして小物をモデリング」の「スタジオシーンを作成」をご参照くださいませ。
プレビューレンダリングすると以下のようになりました。

今回は、線光源と形状の表面を光源にする方法の説明を行いました。
次回は、別のアセットについて説明していきます。

カテゴリー: キッチンを作る