オオセンチコガネの色を多層膜モデルで再現

先日撮った紫のオオセンチコガネ

光の反射角度によって色が連続的に変わっているように見える。前胸板の画像を垂直に切り出し横にしたもの

この色を多層膜のモデルで再現して、膜厚を変えて緑や青の個体がどう見えるかを計算し、来週撮りに行くときの参考にすることを思いついた。で、ちょっとググったらピンポイントなページを発見:http://mph.fbs.osaka-u.ac.jp/~ssc/
多層膜の反射スペクトルを計算する方法も書いてある。さっそくCでコード書いてやってみた。入射角によって各波長の光がどの程度反射されるか計算し、昔どっかで拾った波長からRGBへ変換するデータを使って色に変換する。
一番下に反射率0.3の白い面があり、その上に一定の厚さで屈折率1.5の膜と、その厚さの10%で屈折率1の膜が交互に20層重なっているとして計算するとそれっぽくなった。厚さ360nmで同じ感じの色合いになった


入射角0度の場合の反射スペクトル&R,G,Bの感度曲線

赤と、波長/2のピークの青が混ざって紫になっている。膜間の隙間の厚さを変えると細かい振動の周期が変わる。一定の幅で反射率1のプラトーがあるのが興味深い。試しに各膜の厚さをランダムにばらつかせてみたけどあまり変化なかった。つまり羽化する場合の形成段階で膜厚が多少ばらついたり平均が多少変わっても、狙った波長あたりでは確実に反射率1となるような仕組み。すごいぜ自然。

厚さnm 入射角0度←   →入射角90度
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
400

緑色の:http://mph.fbs.osaka-u.ac.jp/~ssc/beetle0606/oosenti2.jpg
これは320nmでいけそう。黄緑>緑>青>白

青色の:http://mph.fbs.osaka-u.ac.jp/~ssc/kogane/DSC01793.JPG
これは260nmあたりか。

色をのっけてみるテスト http://f.hatena.ne.jp/slideshow/ita/tasomaku2/rss

計算の詳細

複素反射振幅Rの面の上に薄膜を追加した場合、全体の複素反射振幅は(c+d R)/(a+b R)となる。a,b,c,dは波長と角度から決まるこの膜の上面の反射率と膜の位相差を使って表される。これを各膜について下からずんずん計算していく。ところで(c+d R)/(a+b R)の形の写像を繰り返すのは2x2行列{a,b,c,d}をかけていくことで計算できる。

追記

この虫の結果と比べると膜厚が1桁違うしスペクトルも全然違う。見た目似てますってだけじゃ駄目でしたな。
http://mph.fbs.osaka-u.ac.jp/~ssc/scvol1pdf/hariyama.pdf
さらに追記。上のは一層が40nmとかなんでペアで80nmくらいか。オーダーはあっていた。スペクトルも層の数を減らすとおとなしいピークになった。
上の文献で調べられているスゲハムシの画像。金属光沢が美しい。http://www.g-sigma.co.jp/beetles/hyouhon/thumbnail25.htm
これも再現してみたいな。膜厚データあるから。上の文献はスペクトルが合うようにモデルの屈折率を調節したんじゃないかという気がする。