MMAPsによる空中像生成をBlenderで再現
このページは?
-
2020年度のアルバイトさんの制作してくれたページです。
-
株式会社パリティ・イノベーションズ社のパリティミラーや、株式会社アスカネットのAska3Dプレートなどの光学素子でできる空中像や迷光の様子を、レイトレーシングを用いて再現する例を紹介しています。
-
具体的には、下記のような映像を書き出します。
-
ここで使用している光源は全方向に同じ強度の光を放出するモデルのため、迷光が実際よりもはっきりと視認できるようになっています。現実のディスプレイは正面が明るく、角度によって徐々に暗くなっているため、もう見えにくくなります。また、ルーバーフィルム等を使用することで、迷光を減らすことも可能です。
環境
- OS:Windows 10 Pro
- メモリ:64 GB
- CPU:Intel(R) Core(TM) i9-9980XE CPU @ 3.00GHz
- GPU:NVIDIA GeForce RTX 2080 Ti × 2枚
- Blender:v2.81
準備
- Blenderをインストールします。
- MMAPsを生成するアドオンをBlenderにインストールします。
- MMAPs(Micro-mirror array plates)とは2層構造を持つ再帰透過光学素子であり、光源からの光をMMAPsに対して面対称な位置に空中像として結像します。[1]
- HDRIを用意します。
- HDRI(High Dynamic Range Image)とは広範囲の輝度情報を記録できる画像です[2]。これを使うことで、よりリアルな光を表現することができます。
- HDRIは任意のものを用意します。今回は、HDRI HavenにあるPhoto Studio 01の8k版を用いました。
- Blenderの設定をする。[3][4]
ワールドプロパティ
>サーフェス
>カラー
> ○印をクリックして環境テクスチャ
を選択し、開く
をクリックして、用意したHDRI(hdrファイル)を選択します。レンダープロパティ
>レンダーエンジン
:Cycles
に設定します。レンダープロパティ
>サンプリング
>レンダー
:値を512に設定します。レンダープロパティ
>ライトパス
>制限
>間接照明
:値を1に設定します。レンダープロパティ
>パフォーマンス
>タイル
:値をX = 32
、Y = 32
に設定します。
編集
>プリファレンス
>システム
>Cyclesレンダーデバイス
>CUDA
:GPU2枚とCPU1つの計3つすべてにチェックを入れます。ビューレイヤープロパティ
>デノイズ
:チェックを入れ、機能を有効にします。出力プロパティ
>寸法
>解像度
:値をX = 3840
、Y = 2160
に設定します。出力プロパティ
>寸法
>終了(フレーム)
:値を192に設定します。(フレームレートは24 FPSとします。)
モデリング
注意点
- ライトを設置する必要はありません。
- レンダープレビューの初回表示には時間がかかる場合があります。
- MMAPs生成アドオンとの整合性を図るため、Blenderのパラメータにおける1(m)を、実世界における1cmとします。
- 今回使用したMMAPsはミラーの短冊が0.5mm間隔で並んだものであることと、MMAPs生成アドオンの「Slit spacing」のパラメータが0.05であることから、このアドオンのパラメータの単位はセンチメートルであることが分かります。
- MMAPs生成アドオンのパラメータについて、サイズ以外は変更しないことに留意してください。
完成図と寸法図
- 完成図は以下の通りです。
- 筐体の中には、板状の光源が設置されています。
- 寸法は次の通りです。ただし、目のアイコンはカメラを表します(カメラの挙動については、映像作成の項で説明します)。単位はミリメートルです。
-
光源の寸法は12.9インチのiPad Proとほぼ等しく、横281mm、縦215mm、厚さ5.9mmです。
映像作成
寸法について
カメラは、次の条件を満たすように設定します。
- 床からの高さ:160 cm
- 装置からの水平距離:30 cm
- 左右の動き:装置を中心として、左右それぞれ30度ずつ(寸法図参照)
手順
- MMAPsの中心が、
X = 0
、Y = 0
に位置するようにします。 - ベジエ円(Bezier Circle)を追加し、位置を
(X, Y, Z) = (0, 0, 160)
、寸法をX = 120
、Y = 120
に設定します。
- カメラのオブジェクトコンストレイントを設定します。[5]
- アニメーションを設定します。[6]
- 1フレーム目に移動し、
カメラを選択
>オブジェクトコンストレイントプロパティ
>Follow Path
>オフセット
の値を0に設定します。 オフセット
の上で右クリックし、キーフレームを挿入
を選択します。- 同様に、48フレーム目にはオフセット値
8.333
、144フレーム目にはオフセット値-8.333
、192フレーム目にはオフセット値0
をそれぞれ設定し、キーフレームを挿入します。 - カメラのオブジェクトコンストレイント
Follow Path
のパスアニメーション
をクリックしてしまうと、上のようにキーフレームを挿入してもカメラがうまく動きません。ベジエ円を作り直し、カメラのオブジェクトコンストレイントを設定しなおしてください。 - モデルの向きによっては、オフセット値が上記とは異なることがあります。その際は、値の差分のみを参考にしてください。
- 例:向きが180度逆の場合、オフセット値は上記の値にそれぞれ+50したものになります。
- 1フレーム目に移動し、
レンダー
>アニメーションレンダリング
から、映像をレンダリングします。
レンダリングした際、全体は次のように見えます。
参考文献
- [1] 再帰透過光学素子を用いた光学系設計のためのレイトレーシング法によるシミュレーションの応用検討 ↑
- [2] CGライティングの品質を向上させる?HDRIの活用方法 入門編 ↑
- [3] Cyclesでのサンプリングの仕方とノイズ除去【(Blender2.8の使い方26/42】 - YouTube ↑
- [4] Reducing render times by 92%! Denoiser showdown - YouTube ↑
- [5] #12 悪魔のBlender入門 カーブを使ったカメラワーク Blender2.8 - YouTube ↑
- [6] Blender パスに沿ってカメラを動かす(Follow Path Constraint使用) - Satirical Itami.info ↑
ピンバック: 【論文誌】Computers & Graphicsに掲載されました。 | UEC Media Design Lab
ピンバック: 日経エレクトロニクス 2022年5月号で研究が紹介されました | UEC Media Design Lab
ピンバック: Blender MMAP + Plateau再現 | UEC Media Design Lab