しばらく HDRI Heaven の背景画像を利用していたが種類は少ないので、360度カメラで撮影すれば自分で用意できるだろうと思って型落ち品で割引販売が始まっていた Insta 360 One X2 を購入した。
思った以上に簡単に背景画像を自作できたが、撮影した自分自身が取り込まれてしまうので消す必要がありそう。
とりあえず自宅の部屋内を撮影してパソコンに取り込んでみた
360度カメラ本体からパソコンへ USB-C ケーブル経由で撮影された画像を取り込んだ。
どうやら1回の写真撮影につき2つのファイルが記録されているらしい。
- .dng 形式ファイル 35.3MB
- .insp 形式ファイル 4.3MB
Insta360 Studio 2023 というソフトに .dng 形式のファイルを読み込ませると、360度見まわせた。
この .dng 形式のファイルの画像は、2つの魚眼レンズの撮像をそのまま保存しているような感じの画像データなので、おそらくこちらの画像を HDRI 形式に変換すればよいのだろう。
そもそも .dng 形式というファイル形式はどういうものか?
デジタルカメラのメーカーがめいめい勝手に考えていたネイティブなカメラ生データ(RAW形式)のファイル形式を標準化しようとしたものらしい。
.dng 形式にもいくつか種類があるようだ
Insta360 が記録した2つの円形の画像は、両魚眼/双魚眼 dual fisheye 形式というものらしい。しかしどうやら、正距円筒図法 ecuirectangular という長方形の画像にいったん変換しないといけないようだ。
拡張子は同じ .dng だが形式は複数あるという、素人を混乱させるような仕様はやめてほしい...
Insta360 Studio で正距円筒図法 ecuirectangular に変換する
Insta360 Studio のエクスポート機能で変換できるようだった。
- まず「リフレーム写真書き出し」をやってみたが、これは Insta360 Studio で画面表示されている通りに、現在の視点を固定して .jpg を出力するものであり、360度画像の出力ではなかった
- もう一つの「360度写真書き出し」という選択肢の方が、正距円筒図法での出力を行うものだった
見た目はともかく、すでに360度写真なのに、あらためて「360度写真書き出し」という選択肢を選んでエクスポートするのは心理的には違和感があるが仕方ない。
DNG 形式と JPG 形式の両方のファイルが書き出しされます
と説明にある通り、エクスポートで出力されたファイルは2つあって、
- 同じ .dng 形式のファイルが1つ
- .jpg 形式のファイルが1つ
となっている。
両方とも、よくある HDRI 背景画像の見た目にかなり近い長方形の .jpg 形式のファイルに変換されたので、おそらく変換は成功したのだろう。
このどちらかを画像編集ソフトウェアで開き、HDRI 形式で出力することができれば、目的は達せられそうだ。
Blender は .dng に対応していないので、.dng 形式のファイルは使えない
.dng は Adobe が提唱している仕様なので Adobe のクリエィティブ製品は対応しているようだが、Adobe 税を払っていない私としては Blender や GIMP などで対応するほかない。
まず端的に Blender で .dng をインポートしたり変換したりできないのか調べたが、そういう標準機能やプラグインはなさそうだった。
.jpg 形式の方のファイルをワールドプロパティの背景に指定すればOKだった
2つ出力されたファイルのうち、.dng は取り込むことすらできなかったが、もう1つの .jpg の方は、そのまま取り込んで背景 Background に設定することができた。
撮影した本人を中心として、部屋中をグリグリ回して360度見るような雰囲気にすることができた。ただし360度カメラを手持ち撮影した場合のあるあるで、撮影している本人の手と身体もばっちり真下に写ってしまっているので、何とかして消さないと背景としての流用はできない。
HDRIという拡張子のファイルが必要なわけではない
HDRI という拡張子のファイルが必要なわけではなくて、.jpg の画像で十分だったようだ。HDRI は画像の品質を表す何らかの用語だったらしい。勉強しよう。
近景写真なので背景としてそれほど役に立つわけではない
地平線が見えるくらいの遠景の360度写真を当てる場合とは違って、部屋内の近景写真なので、自分で作った3Dモデルと背景との位置合わせはとても難しい。
Blender 上でほんの少し視点を回転させるだけで、写真上の物体と3Dモデルの相対的な位置関係がたちまち整合しなくなる。当たり前といえば当たり前だが...