雑学界の権威・平林純の考える科学

 湖や川の先にある景色が水面で反射して、地上の景色が水上に鏡のように写し出されていることがよくあります。そんな時に、水面に写る景色の方が、水の向こうにあるオリジナルの木や草よりも、不思議に色鮮やかに見えるという経験はないでしょうか?

 実は、水面に映る景色の方が色鮮やかに見えるということは全く不思議ではなくて、とても自然な話です。なぜかというと、水面に映る景色は、私たちが目にする景色の「それ自身の色」をより多く写し出されているからです。
 太陽や照明が放つ光に照らされた物体は、空気と物体の屈折率の違いにより、ある程度の割合の光を物体表面で反射します。そして、表面で反射されずに内部に入り込んだ光が物体の色に染まり、物体内部色の光として外に出てきます。わたしたちが眺める景色には、物体内部の色に染まった光と、物体表面で反射した太陽や照明の光そのままの色の光=多くの場合は白い光、が含まれています。緑の木々や草花が放つ光も、それらの内部から帰る「緑に染まった光」と「表面で反射した白い光」が混じり合うことで、白みがかった緑…つまり、少し鮮やかさが失われた緑色になっているわけです。
 その一方、水面に写る緑の景色では、少なからずの場合に、「表面で反射した白い光」が取り除かれて「緑に染まった光」の割合が高くなっていることが多いのです。…どういうことかというと、物体表面で反射する光は、振動方向が「物体表面に沿う側」のものが多くなります。光は電場と磁場が互いを作り出す電磁波ですが、物体(誘電体)表面で反射する割合は、波としての振動方向(偏光方向)が「物体表面に沿う側」である成分の方が(それと直交する方向に振動する成分よりも)多くなるのです。すると、木々や草花の表面で反射した光は、物体表面を基準にして振動方向が偏った光になります。そして、さらに、「偏光方向が物体表面に沿った成分が表面反射では多くなる」ということを逆に言うと、偏光方向が「物体表面に沿う側」でない光は反射しにくいということですから、木々や草花で反射して振動方向が偏った光は、「ちょうど水面の向きに沿ってて反射しやすい」という偶然でもない限り反射されにくくなります。
 つまり、木々や草花と言った物体の表面で反射した光は水面では反射しにくいことから、水面で反射する光は「木々や草花の内部から返された緑色に染まった光」の割合が高くなるのです。だから、水面に写る景色の方が、水の向こうにあるオリジナルの木や草よりも、不思議に色鮮やかに見えるわけです。

 絵画を眺める時も、光に照らされた絵画は「絵具表面で反射する白い光」と「絵具内側に入ったことで色づいた光」を周りに放ちます。つまり、「絵具自身の色」と「白い光」が混ざり合うことで、絵画を観るわたしたちの目には絵具の色よりも少し淡い色の光が届くのです。鮮やかな絵具が使われている絵画でも、私たちが眺める時には色の鮮やかさが多少とも失われたものになっているわけです。…そんなことを考えると、巨匠たちが描いた絵画の中にある「鮮やかな絵具自身の色」を眺めてみたいとか、「表面反射による(色を淡くさせる)白い光」を分けて眺めてみたいとか、そんな気持ちになります。

 実際のところ、わたしたちが絵画を色々な方向から眺めたりする時には、絵具自身の色と表面反射による白色を分離して感じることもできるでしょう。しかし、絵画を撮影した写真などでは、それらの区別はできないために、色が淡く褪せたような印象になってしまうことも多い気がします。…そこで、今回は巨匠が描いた絵画の中にある「鮮やかな絵具自身の色」を映し出したり、「筆が作り出す表面の輝き」を取り出すことができる特殊撮影・写真展示をしてみることにしました。

 特殊撮影に使う道具は、「【夏休みの自由工作】昼間なのに「夜景風の写真」が撮れるカメラを作ってみよう!?」で作った「偏光フィルタをモータで回転させつつ何枚もの画像を連写するカメラ」です。物体表面で反射した光は振動方向が偏る(けれど内部の色に染まった物体色は光の振動方向が特に偏らない)という特徴を利用して、偏光フィルタ=一定の光振動方向(偏光方向)のみを通すフィルタを色んな方向に回転させつつ偏光フィルタを通過した光の量をカメラで撮影することで、(ある程度の仮定のもとに)「物体自体の色」と「物体表面で反射した光」の量をそれぞれ分離して推定することができるのです。

 さて、巨匠が描いた絵画の色をじっくり眺めてみよう!ということで、米国フィラデルフィア美術館に特殊カメラを持ち込み、絵画を特殊撮影してみました。ストロボと三脚を使わない撮影であれば館内で絵画を撮影して良いということで、ゴッホ・セザンヌ・ルノワール・マネ・クリムト・ロートレック・マチス…と、近代西洋絵画を代表する巨匠たちが描いた絵画を撮影していきます。たとえば、ゴッホ「ひまわり」を撮影してみた結果の一例が、下に並べた画像です。左の画像はデジカメで撮影した「生画像」ですが、真ん中は(推定された)絵具の内部から放たれる「絵具自身の色」で、右が絵具表面で反射した白い光の量を表しています。「デジカメの撮影生画像(左)」と「絵具自身の色(真ん中)」を比べると、撮影生画像は(表面で反射した白い光が混じっていることで)色が淡くぼんやりした感じになってしまっていますが、絵具自身の色の方は色鮮やかで華やかです。なぜなら、「表面反射の白い光(右)」を見ればわかるように、「ひまわり」の葉や花びら部分には白い反射光が多く混じっていて、その部分の色を白く淡く変えてしまっているからです。

 さて、「絵具自身の色」と「表面反射の白い光」を分けて眺めることができるようになったとはいえ、これだけでは「絵画を実際に目の前で眺める」時の感覚とは全然違うでしょう。わたしたちが絵画を目の前で眺める時は、色々な方向から眺めることで、絵具自身の色と表面反射による白色を分けて感じることもできたりします。しかし、上に画像として並べたようなものでは、実際に眺める感覚とは全く異なり、「絵具自身の色と表面反射による白色を分ける」ことはできていたとしても、「絵具自身の色と表面反射による白色を分けて感じる」ことができている…とは言えないに違いありません。

 そこで、特殊撮影で推定した「絵具自身の色」と「表面反射の白い光の量」を利用して、あたかも目の前で観賞しているかのように絵画を眺めることができるページ(フィラデルフィア美術館のゴッホ「ひまわり」のVR表示)を作ってみました(右は動作画面例です)。このページで、油絵をさまざまな向きに動かして眺めてみたり、拡大して大きく眺めてみたりすれば、「鮮やかな絵具自身の色」や「絵具の表面が作り出す輝き」を感じ取ることができるのではないか、と思います。鮮やかな絵具自身の色を眺めれば、普通に撮影・印刷されたカタログではわかりづらい絵画の色使いがわかるかもしれないですし、絵具の表面が作り出す輝きからは、表面の反射特性を作り出した巨匠の筆使い(のかすかなさまを)を感じることができるかもしれません。

 さて、フィラデルフィア美術館で撮影した特殊カメラ画像群ら作り出した「絵画の体感表示」をこのURLに並べて置いておくことにします(ゴッホ「星月夜」は今回のものとは別です)。ゴッホ・ルノワール・マネ・マチス・クリムト…近代絵画の巨匠たちが描き出した渾身の絵画を、こんなVR表示で眺めてみれば「鮮やかな絵具自身の色」や「絵具の表面が作り出す輝き」を少し感じることができたなら良いな、と思います。

 8月31日の夜、つまり、「夏休みが終わるまであと少し」の瞬間というわけで、夏休みの自由工作をしてみました。作ってみたのは「昼間なのに夜景風の写真を撮ることができるカメラ」です。たとえば、下に貼り付けたアニメーション画像は、昼間の風景と薄暗い夜の風景を繋いだものに見えます。昼間に撮影されたらしき画像では明るい青空の下に白い高層ビルがそびえていて、夜近くに撮影されたらしき画像では、暗く蒼く陰る空の下でビルの一部分だけが明るい灯りを灯している…ように見えます。

 しかし、よく見れば、全く同じ人が写っていることがわかります。…実は、このアニメーション画像は「昼間なのに夜景風の写真を撮ることができるカメラ」で撮影された「同じ瞬間に撮影された画像」を使って作り出したものです。それでは、このカメラの仕組みは一体どんな風になっているのでしょうか?



 右の写真が、「昼間なのに夜景風の写真を撮ることができるカメラ」です。デジカメの前で「3D映画や3Dテレビ用の特殊メガネで使われる偏光フィルタ」をモーターで回転させつつ、動画を撮影するという仕組みです。すると、目の前に広がる景色の光の偏光方向(振動方向)がわかります。光の特性として、「光に照らされた物体自体の色を返す光」と「物体表面で反射する光」の偏光比率は違うという性質があるので、こういうカメラでは「物体自体の色」と「物体表面で反射した光」をそれぞれ分けて知ることができるのです。そして、「物体自体の色」だけの画像を眺めれば、太陽に照らされて鮮やかな色を輝かせる(=表面で反射する光は白っぽく「色を鮮やかでなくしてしまう」ので、表面の反射光を取り除けば色鮮やかに見えるわけです)風景に見え、表面で反射する光だけを眺めれば、ほとんどの場所は暗く陰りつつ・どこか他の場所から放たれた光をビル表面の一部や海の波間が返す景色(そして、わたしたちには夜景風に見える景色)が映し出されるのです。とても単純な仕組みのカメラですが、映し出される景色は、想像以上に不思議です。

 本当のところ、実際の夜景で見える景色はその物体自身が光り輝き示す色ですが、このカメラに映し出される夜景風の景色は物体自身が発する色ではなく・他から発せられた光をただ跳ね返すだけの色に過ぎません。そんな風に、正反対の180度違うかに思える光なのに、私たちには区別できず同じように見えるというのが面白いものですね。

 Microsoft Excel で ” - 1 ^ 2 ” を計算すると、なんと「その結果は” 1 “になる!」という話があります。「”-1^2″が”-1″でなく”1”になってしまうなんて!」「演算(子)の優先順位から言って、^すなわち冪乗演算(子)は減算演算(子)より優先されるはず。だから、”-1^2″は”-1″になるはずじゃないか!」「これってトンデモないバグじゃないの!?」とビックリする人もいるかもしれません。…しかし、” - 1 ^ 2 “をExcelで計算した結果がイコール”-1″になるということは、実は「Excelの仕様」として結構有名な話です(Topic: Excel Math Bug, Incorrect order of operations in formula)。

 エクセルで”= – 1 ^ 2 “と入力すると、この”-”は「AからBを引く」ということを行う「AとBの間の減算を意味する演算(子)」にはなりません。この”-”は、その”-”の右側にある「A」を修飾する「単項演算子(Unary operator)」として解釈されます。つまり、「Aの符号を反転した数を返す演算子」になります。…こう書くと「なんだそれ?Aの符号を反転した数はゼロからAを引いた数なんだから、結局のところ、ゼロとAの間の減算と同じじゃないか!」と思われるかもしれないですが、Excelは(そして少なからずのプログラミング言語も)「AとBの間の減算を意味する演算(子)」と「Aの符号を反転した数を返す演算子」は違うものとして取り扱われます。そして、Excelは符号を反転する単項演算子を意味する”-”は、優先度が冪乗よりも高く取り扱われるため、”-1^2″=”(-1)*(-1)” ということになり計算結果が1になるのです(XL: Order of Operations in Formulas)。

 ちなみに、”=-1^2″とすると計算結果は1になりますが、”=0-1^2″とするとエクセルは”-1″という計算結果を出力します。つまり、”-1^2″と”0-1^2″は違う値を返します。…なぜかと言えば、”-1^2″の”-”は「左側に値や変数がなく、符号を反転する単項演算子として解釈される」のに対して、”0-1^2″の”-”は左側にゼロがあり、ゼロと後続する値の間で減算を行うという減算演算子として解釈されるからです。たとえば、”=0–1″と入力すると、特にエラーが出ることもなく、1という値が返ってきます。この場合は、2個ある”-”のうち最初のものがゼロと後続の値間の減算演算子として解釈され、次の”−”は1の符号を反転する単項演算子として解釈されます。そして、単項演算子としての”-”は冪乗や乗算の演算子より優先度が高く取り扱われますが、減算演算子としての”-”はそれらよりも優先度は低く扱われます。だから、”-1^2″の計算結果は1になるのに対して、”0-1^2″は-1になるというわけです。さらには、”-”を3個でも4個でも問題なく重ねて使うこともできます。たとえば、—-1なら符号反転させる単項演算子4個として解釈され、1—-1なら、減算演算子1個・単項演算子3個の組み合わせ…ということになります

 このようなExcelの演算子解釈ルール(優先順位ルール)は、どのようにして生まれたのでしょう?「それは、きっとExcelに先行して発売されていた表計算ソフトのVisicalcやLotus 1-2-3にならったに違いない!」と言われることも多いのですが、残念ながらそうではありません。Visicalcの演算子解釈順は、単純に左から右へと並ぶ”並び順”で解釈されますし、Lotus 1-2-3は(Microsoftのサイトにも、ExcelとLotus 1-2-3の計算順序は違うよ!と書いてありましたが)”-1^2″の計算結果は”-1″を返します(Why is =-1^2 positive and =0-1^2 negative?)。

 それではExcelはなぜ「Excelは符号を反転する単項演算子を意味する”-”は、優先度が冪乗よりも高く取り扱う」というルールを採用しているのでしょうか?…「その理由はこうだった!」という確かな理由は定かではありません。しかし、昔からビジネス関連のアプリケーションを書くために非常に頻繁に使われてきたプログラミング言語COBOLの文法にならった…という説が一番説得力があるように思われます。それは、(当時FORTRANなどを使っていた)数式を使うエンジニアではなく、”普通の人”が使うような目的には、一般的な演算子優先順位ではなく・「マイナス1の2乗」と言ったら「(−1)の2乗」の方が自然だよね!というわけで、COBOLなどに習ってExcelの演算子優先順位が決定されたという考え方です。

 この「- 2 ^ 2 = + 4 と – 2 ^ 2 = – 4 …一体どちらが”正しい”の!?」という話題はとても面白いものです。知らない人は眺めてみるときっと面白いと思います。