Adobe Lightroom Classic で Blender のレンダリングを管理する

概要

Adobe Lightroom Classic は本来写真の管理・現像ソフトだが,32bit TIFF が読めるのでレンダリング画像の管理にも使える.画像を Photoshop で現像するかわりに Lightroom で現像すると,非破壊処理ができる,管理が楽など利点が大きい.Blender では 32bit TIFF を書き出せないので,一旦 Radiance HDR で書き出した後,軽く下処理をして Lightroom に読み込ませる.

レンダリング画像の書き出し

f:id:lunar0:20200619011559p:plain
書き出し設定

画像を 32bpc で書き出す.OpenEXR または Radiance HDR を選択する.

ファイル形式の変換と下処理

書き出したファイルを Photoshop で読み込む.レイヤを複製し,下から順に以下のように設定する.

f:id:lunar0:20200619012148p:plain

  • 上のレイヤ:ぼかし(ガウス)5px, 不透明度 5%
  • 中央のレイヤ:ぼかし(ガウス)0.3px
  • 下のレイヤ:元画像(見えない)

f:id:lunar0:20200619012333p:plain
保存ダイアログ

念のため,レイヤを保存しておく.ファイルが多少大きくなるが,保険だと思うことにしたい.

Lightroom での処理

あとは適宜 Lightroom に読み込んで処理を行えばよい.RNI All Films 5 はクリックひとつで高品質なフィルム風の画像が作れて便利なのでよく使う.あまりプリセットやプラグインに頼ると何かを失うような気もするが,深く考えてもしょうがないので気にしないことにする.

f:id:lunar0:20200619012845p:plain
Lightroom に読み込んで Agfa Optima 100 のプロファイルを適用したところ

和風ホリアティキサラタ

f:id:lunar0:20200607110526j:plain

ギリシャ料理のひとつに,刻んだ野菜をドレッシングに漬け込んだホリアティキサラタというものがある.毎年夏になるとこればかり食べているが,さすがに飽きてくるので和風にアレンジしてみた.

材料

野菜

  • きゅうり 2本
  • トマト 3個
  • 三葉 1束
  • クレソン 1束
  • みょうが 1房

調味料

(調味料の配合を記録していなかったので「適量」記載が多め.だいたいポン酢と醤油が 1:1 程度で,塩味が足りなければ塩をふる程度)

  • ニンニク(刻む)1かけ
  • ポン酢 適量
  • 醤油 適量
  • 塩 適量
  • レモン汁 大さじ2
  • オリーブオイル 大さじ2

手順

  1. きゅうりとトマトを 1cm 角程度に刻む.
  2. 三葉とクレソンを茎 1cm ,葉 2cm 間隔程度で刻む.
  3. みょうがを千切りにする.
  4. 材料をすべて和えて冷蔵庫で数時間おく.

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 の処理前後

Blender でスタジオ風のライティングを試してみる

f:id:lunar0:20200520223615j:plain
完成したレンダリングPhotoshop でレタッチ)

Blender で HDRI 一発のライティングにそろそろ飽きてきたので,スタジオ風のクラムシェルライティングをセットアップしてみた.テクニックの概要については玉ちゃんのライティング話 第17回 バンクライト2灯でクラムシェルに9割方書いてあるので,付け加えることはあまりない.以下はレンダリング特有の事情についての簡単なメモ.

f:id:lunar0:20200520224554p:plain
シーンのセットアップ.物体の後ろ・下に見えている四角いポリゴンは黒締め用の板ポリゴン.

クラムシェルの角度

f:id:lunar0:20200520230737p:plain

今回はライト全体を45°回転させた.カメラからみて左側のライトが背景紙を貫通しているが,見た目に影響がなかったのでそのままレンダリングした.

反射回数を減らすための改変

Cycles では,反射回数を減らしたぶんだけ高速化が図れる.たとえば,背景紙を Diffuse BRDF(拡散反射)から Emission(発光)にした結果,今回はレンダリングが2倍程度速くなった.これは,レイトレーシングにおける反射の計算が背景紙に当たったところで打ち切られたためと考えられる.

リアライトを2灯,被写体を挟むように設置する.通常は光量の比を 4:1 程度に設定するところだが,背景紙を 0.5W/m2 で光らせたため,様子を見ながら最終的に光量を 10 : 1 (5W : 0.5W) に設定した.

Blender 版の「黒締め」

何もしないとシルバーの筐体の底面と左側面の色の差がはっきりしないので,「黒締め」を使ってみることにした.「黒締め」については,玉ちゃんのライティング話 第10回 透明物の透過光撮影と黒締めを参照.

Cycles は物理ベースレンダリングエンジンなので,スタジオ撮影のテクニックは概ね Cycles でも有効である(例外は C-PL フィルタくらいだろう:これはマテリアルの設定を直接操作してしまえばよい).

スタジオ撮影における「黒締め」は,物体の外側に黒ラシャ紙を写し込んで photoshop で消すのが一般的である.Cycles でも同じように行ってもよいが,Cycles の場合はカメラからのみ見えない物体,影を落とさない物体などが簡単に作れるので,Photoshop による後処理は少なくて済む.

f:id:lunar0:20200520232730p:plain

f:id:lunar0:20200520233628j:plain
左:黒締めあり,右:黒締めなし.中央のシルバーの筐体の3面の色の差,グレーの筐体の影がはっきりしたのがわかる

今回は黒締めを行ったことで,すべての筐体で3面を異なる明るさにすることができた.

マスクを作る

オブジェクトを一々切り抜くのは面倒なので,レンダラからマスクを出力させると便利である.以前の Blender では ID Mask を使っていたが,これはアンチエイリアスの品質に問題があった.最新の Blender では Cryptomatte を使うとよい.操作がやや複雑なので,詳しくはドキュメントを参照:Cryptomatte — Blender Manual

台湾ラーメンのレシピ

f:id:lunar0:20200514215056j:plain
もやしがなかったので小松菜で代用した

どこにでもある材料で作れる簡単な台湾ラーメン(塩)のレシピを作った.以下の通り作るとだいぶ薄味になるので,濃くしたい場合は醤油と砂糖,唐辛子を増やすとよさそう.本家では味の素を入れるとのこと.

トッピングの挽肉(つくりおき,1食あたり)

台湾ラーメンの重要な部分.気分で紹興酒など入れてもよい.多めに作って一日二日ねかせたほうが美味しい気がする.

  • 豚肉(粗挽きミンチを用いるか,豚ブロックを 5mm 角くらいに刻む):100g
  • 唐辛子(粗挽きまたは輪切り):2g
  • ニンニク:2-3片,つぶしてから粗く刻む
  • 醤油:大さじ1
  • 砂糖:小さじ1
  • 油:適量

手順

  • 油に弱火でニンニクの香りを移す.
  • 肉と唐辛子,水50mL程度を入れて炒める.
  • 醤油と砂糖を入れて水分を飛ばす.
  • あら熱をとり,冷蔵庫で保存する.

スープ,野菜,麺

  • スープ

    • 水:丼で測る
    • 鶏ガラの素:パッケージに記載の分量
  • 野菜

    • ニラ(5cmくらいに切る):1本
    • もやし:1つかみ
  • 中華麺(細麺):1玉

手順

  • 鍋に湯をわかす.
  • わいた湯を適量フライパンにとり,鶏ガラの素を溶かす.
  • 野菜をフライパンに静かに入れて*1火を止め,余熱で茹でる.
  • 麺をかために茹でる.あらかじめ丼を準備しておく.
  • 丼に,下からもやし,麺,ニラ,挽肉の順に積み,スープを上から注ぐ.

*1:盛りつけ上の理由

デッサンを始めてみた

デッサンを始めてみた.以前造形基礎という名前で半期の授業を受けたことはあるが,美大出ではないし,予備校に通った経験もない.自分が属している複数のコミュニティで同時多発的に人々が絵を描き始めたので,おそらく人々が禁足に飽きているのだろう.鉛筆で身のまわりのものを描き始めた人もあれば,「脳の右側で描け」が熱心に布教されているコミュニティもあり,といった具合である(なぜか自作キーボードコミュニティの一部で絵が流行っている).

デッサンをする場合,照明を決め,椅子の位置をテープでメモして頭の位置を固定し,測り棒(鉛筆で代用することも多い)で長さや角度を測りと,ひたすら自分がカメラ部品になったような動作を要求される.目の前にある物体を忠実に複製するための手法なので,デッサンができたからといって想像上の物体を同じように描けるとは限らない(なぜならデッサンは光の振舞いを考えずに描ける)し,特定の様式のイラストがすぐに描けるようになるとも限らない.どちらかといえば,直接的には絵画よりもアンセル・アダムスのゾーンシステムに近い技術のように思う.

この意味では,鉛筆と紙というメディアを用いる鉛筆画と,現実の射影を追求するデッサンという単語は区別して使ったほうがよさそうに思える.たとえば前者では,イラストレーションにおいてよくみられる大域的な明るさ構造の捨象が許されるが,デッサンではそれは単にヴァルールの狂いと片付けられてしまう.

iPad Pro は初代から数えて3台目だが(このデバイスは描き味が良くて大好きだ),それでもやはり細部の描き込みは鉛筆のほうがはるかに信頼できるので,まずは鉛筆で描いてみることにした.

f:id:lunar0:20200510021421j:plain

一方で最終的な目標はデジタルで明暗をとらえた絵を描くことなので,並行して ProCreate でざっくり明暗をとる練習も始めた.太めの鉛筆を模したブラシでざっくりと下描きしたあと,半透明での描画はできるだけ使わずに色を一度作ってから不透明なブラシで塗るようにした.

f:id:lunar0:20200510022608j:plain

キッチンが整理されていないので,適当に椅子に腰掛けてそのへんを眺めると画題が転がっている

f:id:lunar0:20200510022650j:plain

これは松屋式ドリッパーだが,朝になって照明や椅子の位置が変化したので明暗の関係は上の鉛筆デッサンとは異なる

f:id:lunar0:20200510022749j:plain

ワインの瓶.少していねいに描き込んでみた.指の色を50%グレイにして色を取ったらうまくいくかと思って試してみたが,かなり暗くなってしまった.おそらく iPad の画面が明るすぎたことによるので,単純にレベル補正で正規化すれば解決する問題ともいえそう.明暗の矛盾はだいぶ減らせたように思う.

Cycles でカーペイントシェーダーを作る

f:id:lunar0:20200409025022p:plain

ダウンロード:Github

概要

Blender 標準のレンダラ Cycles でカーペイントシェーダを作ってみた.最近のカーペイントは,たとえば Mazda 3 の赤などで顕著なように,角度がつくと色が濃くなると同時に,混入されたフレークがきらきらと光るものが多い.これを再現するシェーダは Cycles にはないが,ノードを組合せてそれっぽく作ることができる.

リミテーション.このシェーダでは,以下のようなものが再現できない.

  • 複数層にわたるフレークやペイントの層.
  • フレークの重なり.
  • フレーク自体の高度なシェーディング.

より高度なシェーダとして,たとえば商用レンダラの Arnold にはフレーク専用の機能がある.Arnoldも自動机の刑か……

考えるモデル

f:id:lunar0:20200409032059j:plain
今回考えたモデルにおける光の経路

図のようなモデルを考える.簡単のため,フレーク2枚以上に関係する光は考えない.また,透明顔料の厚みを 1 とした.

  • A:クリアコートの反射
  • B:フレークで反射されて返ってくる光.この光につく色は,フレークの反射色 × 距離 2d*arccosθ 分の透明顔料による吸収
  • C:フレークを透過し,底面で反射されて返ってくる光.この光につく色は,フレークの透過色 × 距離 2*arccosθ 分の透明顔料による吸収 × 底面の色
  • D:底面で反射されて返ってくる光.この光につく色は,距離 2*arccosθ 分の透明顔料による吸収 × 底面の色

実際は顔料は完全に透明ではないので,クリアコート以外の計算結果を拡散反射とブレンドすることで不透明性をシミュレートしたことにする.

パラメターの設定

実際に使うときにはいくつかパラメターを追加したほうが便利なので,以下のものを設定できるようにした.煩雑になるので,太字以外は Input ノードを繋げていない.

  • 透明顔料
    • 透明顔料の色 (Transparent Pigment Color)
    • 底面の色 (Base Color)
    • 底面の粗さ (Base Roughness)
  • フレーク
    • フレークの反射色 (Flake Color)
    • フレークの粗さ(Flake Roughness)
    • フレーク基材の透過色((実際に透過する色は (白-反射色) * 透過色 になる)) (Flake Transmission Factor)
    • フレークのサイズ (Scale)
    • フレークの分布する深さ範囲 0.0-1.0 (Flake Depth Min, Max)
    • フレーク色のランダムさ (Flake Random Color, Saturation)
    • フレークの密度 (Density)
    • フレーク法線のランダムさ(左下の Mix ノードを参照)

f:id:lunar0:20200409033056p:plain
ノード構成