Blender でネオンサインを作る

f:id:lunar0:20200531162022j:plain

f:id:lunar0:20200531162133j:plain

概要

猫の形をしたネオンサインを買ったら Blender でネオンサインを作りたくなったので,いくつか作ってみた.静止画なのでレンダリング時間に余裕があるため,モデルは富豪的なつくりをしている.

方針

  • 光の計算はすべて Cycles に任せ,コンポジットなどは基本的に行わない.必要なものは全て3Dモデルに乗せる.
  • 後処理は Adobe Lightroom を使う.

このようにすると,理詰めで考えて計算機に課金するだけでフォトリアルな絵が出てくる.利点は,計算機パワーに頼ることで高速化のためのノウハウがほぼ不要になることで,欠点はコンポジットを工夫する場合と比べて計算機パワーがだいたい二桁程度多く必要なことである.したがって,静止画はこの方針でよいが,1フレーム3ドル = 1秒90ドルと考えると,動画に使うにはやや厳しい.

最近では Blender機械学習を利用したデノイザーが搭載されたが,これは Cycles で入れるボケや,後処理でのシャープニングとの相性がいまいち良くないようである.ボケをポストエフェクトで入れたり,動きで誤魔化したりできる動画にはよいかもしれない.

費用

  • Textures.com テクスチャ 25クレジット(2.2 USD 相当)
  • RenderStreet 利用料 3-5 USD 程度(無料の初期クレジットを充当)


モデリング

ネオン管本体,付属品,環境(ガラス窓や壁など)をモデリングする.ネオン管本体は重要な部分なので,発光する紐ですませず,表面のガラスと発光体の構造をモデリングする.その他の部分はネオン管の絵力で押せるので,適当に作ってもそこまで目立たない.ただ,あるとないとでは違うので,作ってあることが重要.

ネオン管のモデリング

ネオンサインについての Wikipedia の記事によると,ネオンサインには透明管と蛍光管の2種類がある.透明管は放電による発光がそのまま見えるが,蛍光管では管の内面に塗られた蛍光体が発光する.これを踏まえて,2種類の発光体をモデリングする.

透明管(図左)は,外側のガラス管の内側に,発光体としてボリュームに Emission を入れた円柱を配置することで表現できる(ノードグラフはシェーディングの項を参照).このとき,発光体をガラス管の内径よりわずかに小さくすることで,ガラス管内壁のフレネル反射を正しく見せることができる.

蛍光管は,外側のガラス管の内面に Emission を入れればよい.これを実現するためには,以下のどちらかの方法を使う.どちらを使っても結果は同じになる.

  1. ガラス管の内側のポリゴンのサーフェスに Emission シェーダを入れる(図中央)
  2. 外側のガラス管の内側に,サーフェスに Emission シェーダを入れた円柱を配置する.このとき,内側のオブジェクトが多少めり込むようにしておくことで,ガラス管内面のフレネル反射が見えなくなる(図右)

f:id:lunar0:20200531160257j:plain
発光体のモデリング

実際にネオン管の形にするためには,円柱を直接モデリングするのではなく,カーブをベベル機能で太らせる方法で行う.あまりきつい曲げを作るとリアルさが損なわれるので,筆の運びなどを考えながら作る.neonsigns.hk の動画などを見ると雰囲気がつかみやすい.

f:id:lunar0:20200531171831p:plain
ネオン管をモデリングした様子

各種付属品のモデリング

ネオンサインは放電管だけでは成立せず,支持や配線のための部品などが必要になる.これらは写真から探すには限界があるので,図面にあたることにした.

支持部品は,中愛株式会社の Web サイトに大まかな寸法の図面が載っている.ガラス管をからげる細い銅線もサボらずにモデリングする.

ケーブルは適当にモデリングすればよい……と思って径 3mm でモデリングしたが,高圧だよなと嫌な予感がしたので調べてみた.実際はモデルよりも太く,外径 5-7mm 程度で,しかも離隔が 6cm 程度必要らしい.これによれば,下のレンダリングは完全に間違っていることになる.正しい寸法は長岡特殊電線の Web サイトを参照.

f:id:lunar0:20200531160512j:plain
付属品をモデリングした様子

環境のモデリング

ネオンサインを設置した壁,水滴の付いたガラス窓を作った.HDRI には HDRI Haven の Cambridge を使用した.このとき HDRI がガラス面に映り込むとミニマルな雰囲気を損ねるので,カメラの背後に 6500K で光る壁を入れて映り込みを消した.

f:id:lunar0:20200531170131p:plain


シェーディング

発光体のシェーディング

真面目にシェーディングをするなら,スペクトルの測定データをもってきて,スペクトル → CIE XYZ → sRGB と変換することになる.ただ,これは面倒なので,以下のように省略した.

Cycles には波長を RGB に変換するノードがある.ネオンの発光スペクトルの中で一番強いのは 640nm のようなので,とりあえず 640nm で代表させる.そのうえで,RGBが全部 0になると後補正が面倒そうなので Saturation をわずかに下げておく.スペクトルの写真は Dave Shaffer's Astronomy Site ,グラフはスペクトル色々を参照.

蛍光体ではこの手は使えないので,蛍光灯を思い出して少し青緑に寄せた色とした.東日本大震災の頃は LED 照明といわれても半信半疑だったが,今となっては蛍光灯の光を観察しようにもひと苦労である.

f:id:lunar0:20200531162824p:plain
Cycles には波長を RGB に変換するノードがある

不透明塗料のシェーディング

実際のネオン管は,裏に回る字画を光らせないため,不透明な塗料が塗られている.サイエンスチャンネルの動画で塗料にどぶづけする様子を見ることができる.これは,オブジェクトローカルのY座標を見て(図上),ガラスのシェーダ(図中)と不透明塗料のシェーダ(図下)を切り替えることで実現できる.

f:id:lunar0:20200601043933p:plain

水滴のついた窓のシェーディング

水滴をシミュレーションしようかとも思ったが面倒そうなので,かわりにテクスチャを textures.com から購入して使用した.バンプマップに入れるだけなので簡単に使える.


レンダリングと後処理

レンダリング

Render Street を使った.今回のモデルは重いので 2048spp / 4K2K でだいたい15分から1時間ほどかかる.今回のモデル/2020年5月時点では CPU より GPU のほうが高速かつ安価にレンダリングできた.

後処理

まず,素のレンダリングは綺麗すぎるので以下のように劣化させる.今回は Adobe Photoshop を利用した.

  • 全体に 0.3px のガウスぼかしをかける.
  • 全体に 5.0px のガウスぼかしをかけたものを透明度 2-3% で重ねる.

さらに写真らしく見せるために Lightroom で以下のような処理を行う.

  • 色を劣化させる:今回は RNI Films 5 を使用してフィルムらしい色調にした.
  • 解像度を劣化させる:テクスチャ補正とかすみ除去を両方マイナスに振る.
  • シャープニングする:上と矛盾するようだが,写真らしい質感を出すために行う.

f:id:lunar0:20200531172335j:plain
Lightroom の処理前後