JPG画像をHDRに変換 コンバートする方法

DAZ StudioのIBL光源には、通常のJPG画像を使うよりもHDR化したほうがクォリティが爆上がりする。

多少の手間はあるけど、無料ソフトを食いつないで作成できるので、トライしてみるといいだろう。

3枚の360度jpg画像を合成して、HDR画像に変換

HDR変換には、Photomatrix Proを使う。有料ソフトだが、無料体験版の機能で透かしなども入ることなくHDR化が可能なのだ。

ダウンロード HDR合成用写真編集ソフトウェア Photomatix

起動すると、「体験版には透かしが入る」と表示されるけども、単純に合成するだけなら透かしは入らない。(2020年1月現在)

「体験版の使用」をクリック

「参照&読み込み」のところに、合成したい3枚の360度画像をドラッグ&ドロップする。

1枚のjpgから、3枚の輝度の異なる画像を作る方法は、この記事の下の方にあるので参考にしてほしい。

「ドラッグしたファイルの処理方法は何にしますか?」と聞かれるので、「HDR処理用に合成」を選んで、OKをクリック。

以下の画面が表示されるので、「露出のチェック」をクリック。「次:合成オプションを選択」をクリック。

露出アンダー(一番暗い画像)、露出オーバー(一番明るい画像)ともに「十分にカバーしている」とのこと。

ブラケット間隔が推奨値より大きい、というのは3枚の明暗の差がバラバラだよ、ということっぽい。EVはExposure Valueの略で詳しい意味は知らないけど、多分明るさを表す値だ。

この露出チェックで「全部オーケー」が貰えたら、たぶんバランスの良いHDR画像ができるのだろう。

「32-bit 未処理イメージを表示」にチェック、それ以外のチェックを外して「HDR合成をする」をクリック。

わかりにくいけど「32-bit 未処理イメージを表示」にチェックを入れておくと、HDR形式での保存が可能になる。

ファイル→名前を付けて保存でhdr形式で保存する。

うわ、なんか暗いじゃんとか明るいじゃんとか気になるかも知れないが、このままで保存する。

明るさなど少しでも調整とかを行うと、hdr形式で保存できなくなるのだ。そういうことしたいならお金払ってくださいということだ。当然だ。資本主義なのだ。

で、DAZ Studioのenvironment mapに指定したら真っ黒になったけど、値を100とか500にして明るくしたら、けっこう画像とライトの強度が合ってた。


▲台所でうごめく全裸女の作例

黄色っぽいのは、どうにかならないのかなぁ。

背景画像に2D画像を使い、光量を自由に設定する

いろいろ試した結果、黄色っぽいのはどうにもならない。

上記の問題点は、いい感じに光量を調整しようとすると背景画像の明るさまで変わってしまう点だ。

解決策は、背景に使う画像は、EnvironmentタブのBackdropとして指定し、光源はいい明るさになるまで目分量でRender Settings→Tone Mapping→Exposure Valueを調整するという泥臭い方法となる。

なお、EnvironmentタブのBackdropには2D画像しか使えないため、Thetaなどの360度画像はあらかじめ、Theta基本アプリなどで2D画像を切り出しておく必要がある。

このとき、Draw Dome(ドーム表示)はOffにしておこう。(Onにしておいても、Backdropが優先して表示されるので、たぶん問題ないけど)

屋外ならば、Dome ModeをInfinite Sphereに、屋内ならFinite Sphere(またはFinite Cube)にする。

Finite Sphere(有限サイズの球形ドーム)で、ドームサイズが小さい場合は空の青が光として使われていまい、青い光が当たることになるのだ。

そのため、屋外ならInfinite Sphere(無限サイズの球形ドーム)を使うのがいいだろう。Finite Sphereでサイズを十分大きくしても、まあOKだと思う。

1枚の画像から、明るい画像、暗い画像を作る方法

いろいろ試したところ、トーンカーブなどの機能を使うのがキレイにできるっぽい。

私は、無料のPhotoScapeというソフトで調整した。

例えば、こんな画像があるとしよう。これは、photoacという無料素材サイトで入手したものだ。

カーブはこんな感じ。線をクリックするとドットが追加されるのでドラッグでいい感じの曲線にしよう。

キレイにできたら、保存(カーブ)ボタンで保存しておくと後で使いまわせる。

適用するとこんな感じ。

どのくらい暗くすればいいかというと、「真っ白い部分のディティールがわかるレベル」が理想だ。けどまあ、だいたい暗くなってればそれでいいと思う。

明確な光源がない場合は、勝手に白の塗りつぶしを追加して「擬似太陽」というか擬似光源を作ってしまおう。単純に一枚の画像からHDR画像を使うと、ライトのメリハリがイマイチだったりするのだ。

HDR画像使ってるのにライトがぼんやりしてたら、ここに光源あるよな多分…ってところを、ブラシで白く塗りつぶそう。

明るくするには、カーブを逆方向に設定。こんなふうに。

明るくする基準は、暗い部分のディティールがハッキリ見える程度に、だけどまあ適当でも良いと思う。

このカーブも、使いまわすため保存しておくといいだろう。

1枚のJPG画像から光源の明るいHDR画像を作る方法

出来上がったHDR画像をenvironment mapに使ったけど、シーンが暗い…という場合は、光源位置の輝度を上げる。HDRの特定箇所の輝度を上げるには、HDR編集可能なツールが必要だ。

とりあえずPhotoshopで可能。私の持ってる古いCS2でも編集可能だった。

まず、360度jpg画像をPhotoshopで開く。

自動選択ツールをクリックし、光源(ここでは太陽があるっぽい白い箇所)をクリックして選択状態にする。

選択範囲→境界をぼかすを選択。

半径2pixelで、OKをクリック。

イメージ→モード→16 bit/チャンネルを選択

画像が、1チャンネルあたり16ビットになる。RGB合わせて16×3=48ビット画像ということになるのかな。

これを選ぶと、CS2では「自動選択ツール」が使えなくなるので、ここより前の手順で光源の位置を選択しておく必要あり。

イメージ→モード→32 bit/チャンネルを選択

16bit/チャンネルにすると、ここが選べるようになる。

これで、32ビットxRGB3チャンネルの96ビット画像となり、晴れてHDR画像と同じ情報量が持てるようになったのだ。

イメージ→色調補正→露光量を選択

露光量ウインドウが表示されるので、露光量に値を入れて、OKをクリック。

なお、3つ並んだスポイドアイコンを選択中に、画像の薄暗いところをクリックすると、露光量を取ってきてくれる。

うーん、この値をそのまま使っていいのかな?

  • 晴天の屋外 … 露光量 +3
  • 曇り空の屋外 … 露光量 +2
  • 明るい屋内 … 露光量 +1

って感じでいいのかなぁ。今はまだ適当にしか決められない感じ。

名前を付けて保存を選ぶと、HDR形式が選べるようになっているので適当な名前.hdrとして保存。

この保存にメッチャ時間かかる。5Mくらいの4Kサイズの画像が、HDR形式で保存すると50MBとかになる。もっと気軽に試せたらいいんだけどな。

DAZ Studioで、environment mapとして適用すると、この違い。

ありゃ、HDR化したら少し暗くなってしまった。

とりあえず、Render SettingsのExposure Valueを調整(F/Stopを調整すると、連動してExposure Valueが変化する。)

光の当たり方がカンカン照りな感じになってしまったか。

とりあえず、今はここまで。

参考にしたチュートリアル

How To Create Iray HDRI Maps Using Insta 360 One X 

INSTA 360 ONE Xを使って撮った360度画像をHDRI化する手順を紹介したチュートリアル。HDRI製品を多数リリースしているDreamlight 氏のチュートリアルだ。

6本動画があるんだけど、全然核心に触れなくて、ちょっとイライラする構成。

  • ブラケット撮影のためにトライポッド(3本足で自立する一脚)があるといいよ
  • 目線の高さくらいで撮影するといいよ
  • 晴れの日の屋外の画像を扱うと簡単
  • INSTA STUDIOという専用ソフトで、水平線を水平に直せるよ
  • Photoshop CCで、光源の明るさを調整できるよ

というようなことが語られている。内容薄かった…買わなくていいと思う。

知識ゼロから見るなら、流れがわかってよかったのかも知れない。

まとめ

  • IBL光源には、jpg画像よりもHDRIを使ったほうが光のメリハリがついて美しい
  • jpg画像をHDR画像に合成するのは、フリーウェアの組み合わせで可能
  • 2D画像をHDR画像として使っても、そこそこのクォリティが出る