2000/04/05
OPEN

表紙

1.主旨と説明
2.用語集
3.基本操作法
4.我輩所有機
5.カメラ雑文
6.写真置き場
7.テーマ別写真
8.リンク
9.掲示板
10.アンケート
11.その他企画

12.カタログ Nikon
 F3 (F3H)
 FM3A
 FM2
 FM
 FE2
 FE
 FA
 FG
 FM10
 FE10
 F4
 F-401X

Canon
 AE-1P
 AE-1
 newF-1

PENTAX
 K1000
 KX
 KM
 LX
 MX
 MZ-5
 MZ-3
 MZ-M

OLYMPUS
 OM-3Ti
 OM-4Ti
 OM-2000

CONTAX
 ST
 RTS III
 Aria
 RX
 S2

MINOLTA
 X-700
 XD

RICOH
 XR-7M II
 XR-8SUPER

カメラ雑文

[735] 2011年11月05日(土)
「HDR画像の利用について(その2)」


正直言って、我輩は「芸術的8bit-HDR写真」が大嫌いである。
ミーハーとでも言うか、とにかく技法に踊らされた軟弱感があり、それに拒絶反応を示すからだ。そこには何の必然性も信念も見出せない。

もちろん、他人が好きでやっていることをとやかく言うつもりも無いが、以前のロモ写真の妙な流行のような、これまで性能を追い求めて進化してきたカメラを真っ向から否定するような気持ち悪さを感ずる(参考:雑文324)。

そもそも、せっかくの高ビットカラーで記録されたHDR画像をわざわざ8bitに落とし、その際の諧調の歪みを作品とするというのが気に入らぬ。
写真の基本とは、「見た目通り正しく描写すること」である。それが写真文化としての太い柱であり、そこから表現手法として様々に分岐させるものとなる。これは、写実絵画の要求から産み出されたヘリオグラフィー(太陽光の描く絵)としての大前提であり、その軸をブラさないことは写真文化を伝承し発展させる我々の責任でもある。

確かに、見た目通り正しく描写することは容易なことではないし、見た目通りの解釈の仕方にも違いがある。だからこそ、先人たちは大変な苦労をしてカメラや感剤の性能を向上させ、撮影技法を切り拓いてきたのだ。我輩は、こういう先人の努力を無にすることは絶対に許すことは出来ない。

もちろん、これは基本の部分の話である。
基本を基本として持っていさえすれば、妙チクリンな表現技法に対して「人それぞれ」と言うことも出来よう。
しかし昨今では、基本を知らぬ初心者の段階で芸術的8bit-HDR写真を撮る者が増えている。それを可能にしたのが、カメラ内蔵機能としてのHDRであった。
「よく分からないが芸術っぽい写真が撮れる」という理由で撮り始め、しかもそれが大勢を占める現状。これはまさに"流行"である。

「流行であっても写真を始めるきっかけになればいいだろう」などと言う者もいるが、流行から入った者は流行と共に消えて行くのが常。そして消え去った後には、流行のせいで少数派が絶命させられているのである。

ここで我輩は、HDRを見た目の奇抜さではなく、写真画像としての必然性を持った利用について考えることにした。とは言っても、現状では高ビットカラーをそのまま表示出来るディスプレイなどの出力装置は存在しない。
ならば、いつ実現するか分からぬ将来のために高ビットカラーのHDRを撮って保存しておけと言うのであろうか?

我輩は、CGの世界に高ビットHDRの存在理由の1つを見た。


<3D−CGで利用されるHDR>
コンピュータを使って描いた絵のことを「CG(コンピュータグラフィックス)」と総称する。
中でも、コンピュータによって仮想的に空間を創り出し、その中に物体の形を計算処理(レンダリング)によって現すものを「3D-CG(三次元コンピュータグラフィックス)」と呼ぶ。

3D-CGの場合、仮想的とは言っても現実の光学的法則に則して計算が為されるため、何も用意していないところからいきなり画像を創り出せるわけではない。現実と同じように物体を配置しライティングを行うことで、初めて画像が生成されるのだ。
もしその結果に満足出来ねば、ライティングを変えたり、物体の表面材質のパラメータを変えたり、あるいはレンダリングの精度を変えたりすることになる。

レンダリングは基本的に、光がどのように進んでどの方向に反射したり屈折したりするか、その経路を計算でシミュレートし投影させるものである。当然ながら、計算速度の速いコンピュータほど早く結果が出る。

そう考えると、現実の世界というのはある意味では超高速コンピュータとも言えるかも知れない。光と空間という道具を使って映像を一瞬で創り出しているわけである。
(※ただし現実世界が超高速コンピュータというのは幻想かも知れぬ。仮に現実世界というコンピュータが超スローであったとしても、時間経過、つまり光の速度も同じく超スローになるので遅さは体感出来まい。)

さて、3D-CGも現実世界も、映像を得るにはライティングが重要であることは共通している。
確かに、3D-CGではライティングを適当に設定すると結果が芳しくない。そこで色々と頭を悩ますのである。
やはり、我々は現実の世の中に生きている以上、現実の環境を模したライティングが自然であると感ずる。

ただそうは言っても、現実の環境を仮想空間内に再現するのは大変な作業。屋外ならば木々や建物そして雲などをが周囲に必要だが、それを3D-CGで1つ1つ作り込むのは大変な労力。またそれだけでなく、それら物体の数が多ければ多いほどレンダリングにも時間がかかる。

そこで、実際の風景を撮影した写真を使って環境を再現しようという方法が考えられた。つまり、3D-CGの仮想空間を取り囲む天球に、高ビットカラーのHDR写真を貼り込むのである。
この手法はIBL(イメージベースドライティング=画像をもとにした環境照明)と呼ばれ、天球に貼り付けたHDR写真が3D-CG空間内の照明を担う。もし天球の写真に太陽が写っているならば、その太陽がまさに眩しいほどの光を放つ光源となるのだ。それはまさに、高ビットカラーの持つ光のダイナミックレンジこそが成し得ること。

<IBLにより現実の環境を再現したライティング>
IBLにより現実の環境を再現したライティング

もちろん、HDRの代わりに通常の8bit-JPEG画像も貼ることは方法論としては可能ではあるが、その場合は空の諧調が浅くなり空一面が広い光源となってしまい、環境光が現実とは異なってしまう。
IBLは現実の照明環境をコンピュータ内で再現させるために使う手法であるから、可能な限り高ビットのHDRを使うのが好ましい。そうでなければ、IBLを用いる目的を削ぐことになりかねない。

我輩は、高ビットHDRを有効に利用出来るのは、現時点では3D-CGのIBLしかないと思った。
現実世界の照明環境をそのまま3D-CGの仮想空間内に取り込むために、写真の手法を用いるのである。そのために必要とされるのが高ビットHDR。
ミーハーな芸術的8bit-HDRに食傷気味だったところに、非常に真面目で理屈の通ったHDRへの要求であった。

とは言え、天球に貼り込む特殊な画像であるから、普通の機材で普通に撮って普通に画像処理すれば良いものでもない。簡単に言えば、全周囲360°の1枚に繋がったHDR画像を作る必要がある。
そのためには、撮影機材やソフトウェアが幾つか必要となり、特に機材では円周魚眼の撮れるレンズが不可欠。
対角線魚眼レンズならば我輩も所有してはいるが、円周魚眼レンズなど無い。だからどうにかして入手する必要がある。

しかし我輩も金に困っている状況で、ツブシの利かない特殊なレンズを大金出して買うことは難しい。
何とかならぬものかと悩んでいると、勤務先の営業方針の1つとして去年から3DーCGの受注拡大を狙うという話が持ち上がっていたことを思い出した。

3DーCGの制作担当者は、部所は異なるものの顔見知りの後輩で、彼が3DーCGのリアリティを向上させるための技術を色々と試していた。そこで我輩は、彼のプロジェクトに参加する名目で、技術習得費用を使い、IBL制作のための撮影機材を購入することにした。


<撮影機材選定・購入>
我輩としては、機材選定には私情を挟まず合理的理由を持たせたい。なぜならば、購入要求時にその機材の必要性などを問われても、直ちに答えられるだけの理屈を自分自身の中で持っていたいからである。
またそれ以上に、このような合理性が皆からの信頼を集め、次回購入時にも我輩の要求が通り易くなるであろう。先々のことも見通してのことである。

まず、レンズだけでは撮影できないため、カメラボディを選ぶわけだが、予算の関係からAPSサイズしか有り得ない。
「APSサイズ用の円周魚眼レンズなどあるのか?」と思ったが、探すとSIGMAから4.5mmのAPS用円周魚眼レンズが出ている。用意されているマウントはNikon、Canon、PENTAX、SONY、SIGMAの5種。

我輩の部所に元々あるデジタルカメラが「PENTAX K10D」であるため(参考:雑文615)、何となく今回購入するものもPENTAX製にしようかと考えた。しかしプロジェクトが終われば後輩の部所で所有することになるので、あまり意味の無い理由ではある。

そこで改めて考えてみると、円周魚眼写真は画面中央部を円形に映し出すため、全体の35パーセント(後日実測した値)ほどの利用率となり実質的な画素数が低くなる。ならば、予算の範囲内で最も画素数の多い機種にしたほうが良かろう。
また、魚眼撮影しか出来ぬカメラではツブシが利かないため、どうせならばレンズキットのものを購入したい。

以上の条件を「価格.com」にて検索したところ、Canonの1,800万画素APSカメラだけがヒットした。「EOS-Kiss」ならば5〜6万円くらいで買えそうだ。
早速購入伺いを出そうとしてカメラ名を記入したりしたのだが、「Kiss」と書いたところで手が止まった。

「くそ、Kissなどというカメラを買うのはシャクに障る・・・。」

よく考えると、カメラの予算は10万円であるから、無理に「EOS-Kiss」にする必要も無い。
改めて調べると、同じく1,800万画素の「EOS-60D」のレンズキットが8万円くらい。ならば、こちらにしておこう。詳しい性能は知らぬが、名前と価格からして中級機種であることは明らか。
当然ながら、魚眼レンズもCanonマウントとなる。

<APSサイズ用円周魚眼レンズ SIGMA 4.5mm F2.8>
APSサイズ用円周魚眼レンズ SIGMA 4.5mm F2.8

他には、360°パノラマ撮影のためのパノラマ雲台、軽量でありながらシッカリとしたカーボン三脚、SDメモリカード、予備バッテリー、そしてディスプレイを正しい色に調整するためのキャリブレーターを購入することにした。

<GITZO製パノラマ雲台 GS3750D>
GITZO製パノラマ雲台 GS3750D


<撮影>
機材が揃えば、すぐにでも撮影に行きたくなるものである。後輩も、「いつ撮りに行きましょうか」と催促する。
だが我輩は、IBL用途の写真撮影について事前勉強が必要だと感じた。機材選定の際に一通り調べたつもりであったが、撮影時の具体的な作法や注意点などはこれからという状態である。
いざ画像加工する段になってからその写真が使えない、あるいは使いづらいということになればまた撮り直しとなってしまう。

とりあえずWeb上で得た幾つかの断片的知識を用い、近場でテスト撮影を行った。
そしてその画像を使って360°のスティッチ(パノラマ合成)を行ってみたのだが、なかなかうまく繋がらない。ただ、撮影手順そのものに問題は無さそうに思えたので、スティッチソフトの使い方の問題であろう。
そういうわけで、とりあえず本番撮影を行うこととした。何しろ、テスト撮影の暫定画像ではどこか本気になりきれないのだ。

さて実際の撮影についてだが、まず三脚にパノラマ雲台を設置して水平を確認し、そこにカメラを載せる。
このパノラマ雲台には水準器が付いているので、水平をキッチリ出すには役立つ。

<撮影の様子>
撮影の様子

露出は基本的にマニュアルモードで固定したうえでAEB撮影(自動段階露出)を行う。段階幅は2EVとし、RAW形式にて-2EV・0EV・+2EVの3枚を撮影する。
パノラマ撮影の角度は、90°刻みの4方向でも大丈夫らしいのだが、ここは余裕を持たせて45°刻みの8方向とした。
結果的には8方向x3枚で24枚のRAWデータが得られることになる。

<360°を8方向に分けて各3枚AEB撮影 (合計24枚)>
360°を8方向に分けて各3枚AEB撮影

注意点としては、マニュアル露出モードにしていることを忘れて次の撮影でそのままシャッターを切ってしまうことだ。我輩は最初の撮影でそれをやってしまった。
また、円周魚眼撮影ならば当然ではあるが、前方180°の範囲にあるものは全て写り込むのであるから、ちょっとでもレンズ面から前に顔など出そうものならそれが写ってしまう。カメラを手で持って撮影しているならばまだしも、三脚で固定しているためにちょっと上から覗き込んでシャッターを切ってしまうこともあろう。その点は気をつけたい。ただし、三脚の脚が写ってしまうのは仕方無い。


<HDR合成>
撮影した画像はRAW形式としたが、1枚1枚のダイナミックレンジはHDRとしては足りない。そのため、-2EV・0EV・+2EVで段階露出撮影した3枚を合成させてダイナミックレンジを広げる処理を行う。
ここでは処理に「Adobe Photoshop CS5」を用いた。
まず、[ファイル]−[自動処理]−[HDR Pro に統合]を選択する。

<Adobe Photoshop CS5でのHDR合成>
Adobe Photoshop CS5でのHDR合成

すると、次のようなウィンドウが出るので、合成したいRAWファイルを指定してやると処理が行われる。

<HDR Pro に統合>
HDR Pro に統合

処理が終わるとPhotoshop上に画像が表示された状態となるので、32bitになっていることを確認してから別名保存で「Radiance/HDR形式」にて保存する。
これで、パノラマ1方向のHDR合成が完了したことになる。
続けて同じように作業を行い、合計8つ(8方向)のHDRファイルを合成させた。


<スティッチ(パノラマ合成)>
次は、HDR合成した8枚のファイルを繋げて1枚のパノラマ画像にする、いわゆるスティッチ処理を行う。
ここでは、Hugin(フーギン)というフリーのソフトを利用した。

このソフトは少々癖があり、特に注意せず使おうとするとまず失敗する。
少なくとも我輩の環境では最新バージョン(Hugin 2011.2.0)では起動せず、ひとつ下のバージョン(Hugin 2011.0.0)でなければ使えなかった。

またそれだけでなく、データの格納フォルダの名前、そして画像ファイル名には日本語を入れると合成&書出し処理でエラーとなる。画像の読み込み作業では特に問題無いだけに原因が分からず苦労させられた。

それから画像ファイル名に日本語が入っていなくとも、あまりファイル名が長いとやはりエラーになる。

実際の操作についてだが、まずHDR合成した魚眼写真を読み込むところから始まる。
次に、8枚相互に重なる部分にて共通するポイント(コントロールポイントと呼ばれる)を指定する。

<Huginを使って魚眼HDRをパノラマ合成>
Huginを使って魚眼HDRをパノラマ合成

最初に考えたのは、コントロールポイントは多ければ多いほど、そして人間の目で見ながら手動でポイントを打っていくほうがうまく合成出来るのではないかということだった。
しかし実際にやってみるとそれは逆で、自動的にコントロールポイントを打たせる機能を使ったほうが結果が良かった。そもそも、自動的にコントロールポイントが打てるくらいの良好な画像でなければ上手くいかないのだろう。

同じ理由だと思うが、最初からHDR画像を使ってコントロールポイントを自動打ちすると全然うまくいかない。試しに、JPEG変換した画像を読み込んでコントロールポイントを自動打ちさせたところ、ウソのようにうまくいった。

そこで我輩は、コントロールポイントの自動打ちだけJPEG画像にて行い、合成処理の段階でHDRに差し替えることにした。
差し替えの方法としては、コントロールポイントを打たせた状態でHuginプロジェクトファイルをセーブし、元のJPEG画像を退避あるいは削除しておく。そして再びHuginプロジェクトファイルを読み込むと「画像が見付からないがどこにあるか?」と聞かれるので、改めてHDRのほうを指定すれば良い。そうするとコントロールポイントはそのままで画像のみ差し替えられる。

その後、「最適化」タブから「位置(基準から初めて1枚ずつ)」を実行、次に「移動量以外のすべて」を実行する。
最後に、「スティッチング」タブにて「Canvas Size」の「Calculate optimal size」ボタンを押し、右下のスティッチボタンを押せば良い。

その結果得られたHDR画像が次のものである。
上下に180°、左右に360°の範囲が写っており、IBLとして天球面全体に貼り付けられる。縦横比は1:2となるよう出力されている。

<8枚の魚眼HDR写真をスティッチした画像>
1枚のRAWデータから生成した8bit画像


<3DソフトへのIBLの適用>
IBLの効果が分かり易いのは、周囲の様子が表面に映り込む光沢面のある物体である。
ここでは業務に関係する3Dデータを見せるわけにはいかないのだが、我輩がクルマを購入した際に同じ車種の市販3Dデータを購入していたので、それを使ってみる。少しばかり造形が粗いのは仕方が無い。
クルマのボディは光沢面であり、このようなデータでも環境光映り込みの参考にはなろう。

<市販の3Dデータを使う>
市販の3Dデータを使う

恐らく、今時の3DソフトならばどれでもIBLを利用出来るだろうと思う。実際、我輩が個人で使用している「Shade 9」でも一応使える。
しかし勤務先の研究開発で導入した「Autodesk Showcase」や「Autodesk Maya」では、本格的で細かいパラメータの設定が可能で、IBLの効果を最大限に引き出せる。

「Showcase」はプレゼンテーション用のCGソフトで、リアルタイムなハードウェアレンダリングにより、3Dの物体(オブジェクトと呼ぶ)を画面上で動かしながらIBLの効果を見ることが可能なソフトである。
プレゼンテーション用であるから商品を紹介するようなアニメーションも手軽に作れたり、少々時間はかかるが本気のレンダリング(レイトレーシング)も出来る。
普通は、手間と時間をかけず良い物は出来ないはずなのだが、このソフトを使うとそれが出来るようになる。それがこのソフトの特長である。

<Showcase>
Showcase

だがやはり、プレゼンテーション用というスタンスのためか、"3D-CG画像を作る"というよりも"3D-CG画像を観る"という使い方が正しいようで、意外なところで自由度が無いところがある。
また、表示している画面よりも大きなサイズでレンダリングすることが出来ない。

一方、「Maya」はCG業界ではかなり有名な3D-CGソフトで、映画やCMなどによく使われているようだ。
また製造業でもCADとの連携で使われており、例えば我輩の勤務先では、CADデータから変換したデータを「Maya」で使っている部署があると聞いたことがある。

実際に使ってみると、かなり調整項目が多く、最初にデータを持ってきて無調整のままレンダリングしてもクオリティが低く見える。
しかし、オブジェクトの材質やレンダリング設定、そして照明関係の調整を細かく行っていくと、それに応じてクオリティも増していく。とにかく面倒くさいし知識も必要だが、やればやるほどクオリティが上がるのはさすがに業界向けだという気がする。

下の画像は、先に作成したHDRパノラマ画像を「Maya」にIBLとして読み込ませレンダリングしたものである。
オブジェクトの形状データが精密ではないので少々ハリボテのようにも見えるが、IBLの環境が光源として働き、ハリボテはハリボテでも、実際にその場にハリボテを置いているように見える。
言うまでもないが、IBL以外の照明は全く配置していない。

<Mayaでレンダリングした3D-CG>
Mayaでレンダリングした3D-CG

細かく見てみると、確かに天球に貼り付けられたHDR画像がボディ表面に映り込んでいるのが確認出来る。

<一部を拡大>
一部を拡大

比較のために実車を撮影した写真があるので、を掲載する。
確かに現実の写真と比較してしまうとその違いは明らかだが、IBLの調整項目もそれなりに細かくあるので、その設定により近付くのかも知れない。

<比較のため実車を撮影した写真>
比較のため実車を撮影した写真

次は、木々が空を覆っているようなシチュエーションをIBLとしてみた。撮影場所は富津岬である。
影のパラメータが適切でないせいか車内が妙に明るくなってしまったが、ボディの映り込みはなかなか雰囲気が出ており、その場所に存在しているかのように感じられる。

<Mayaでレンダリングした3D-CG>
Mayaでレンダリングした3D-CG
Mayaでレンダリングした3D-CG
Mayaでレンダリングした3D-CG
Mayaでレンダリングした3D-CG

今回は作業時間の関係上、3D-CGとしてのクオリティを極限まで突き詰めることは出来なかったが、それでも高ビットHDR画像を使ったIBLの有用性を改めて感じることが出来た。
写真画像を照明として使うためには、高ビットHDRは欠かせない。

もちろん、レンダリングしてしまえば最終的に得られるのは8bitカラーの画像(アルファチャンネルを加味するならば高ビットだが)である。そういう点では、「芸術的8bit-HDR写真」と同じではないかと言われるかも知れない。

しかし、IBLで活用される高ビットHDRは、3D-CGを形成する仮想世界の構成要素である。単なる中間生成物ではない。むしろ、本質とも言える。
そして、本質の一面を切り出したものが、レンダリング結果なのだ。

眩しい光として写真に写し込まれたものが、3D-CGの中で照明として活用される。
そのため、高ビットHDRは高ビットのまま使われることに大きな意味を持つのである。