SSブログ

厳密な光線追跡 - その12 [光線追跡エンジンを作る]

前々回前回で数学をまとめた。Mathematicaでのコーディングを始める前に、エンジン単体ではなくて光学系評価プログラムとするときに必要なことをちょこっとメモしておく。

3.6  残った必要なこと

これで実質的に光線追跡エンジンの数学はおしまいである。 これまでの計算ができれば厳密な意味での光線追跡が実行できる。

しかし、例えばレンズ系の性能評価に使おうとすると、これだけでは難しくて、周辺の計算が必要になる。

レンズ系の性能評価をする場合に、光線を追跡する以外に何が必要かというと
  • 絞り位置
  • 明るさ
  • 視野
のみっつが与えられないといけない。

絞り位置が決まることで主光線が決まる。主光線とは瞳の中心、つまりは絞りの中心を通る光線のことで、これが基準になる。また明るさとは
  • 開放F値(F-Number)
  • N.A.(Numerical Aperture)
  • 入射瞳径
などのことで主光線に対してマージナル光線を決めるために必要となる。入射瞳径は望遠鏡などのアフォーカルな光学系で使われる。これらを決めることで球面収差と軸上の色収差が評価可能になる。

そして視野は
  • 画角
  • 最大像高
  • 最大物体高
などのことで、このどれかが決まると非点収差、コマ収差、像面湾曲、歪曲などが評価可能になる。

実は光線追跡をする上では、これら評価のために与えられる量は近軸量であるべきである

例えば正弦条件を守らなければ、マージナル光線の入射角度が同じであっても像の明るさ(スポットの光強度)は違うし、歪曲収差によって画面に入る物体範囲は違ってくる。収差によって評価基準が変わってしまっては正しい評価にならない。

画角の広いレンズを設計しようとして最適化を繰り返した結果、ただ負の歪曲が増えただけ、なんてことが起こるのはこういった評価基準の与え方が原因であることが多い。同じ理由で近軸量が最適化のパラメータに含まれてはいけない。まあ、そういったことは今回の光線追跡エンジンの話とは関係ない。

しかし案外光線追跡エンジンと、近軸量を計算するルーチンとのやり取りはオブジェクト設計上は結構難しくて工夫が必要である。

近軸量の計算は以前近軸マトリクスを使った計算をまとめた。とりあえずはあれがそのまま使えるが、悩ましい問題が存在する。その話はまた別途ということにする。

次回から具体的なMathematicaのコーディングに入る。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立10/21献立10/22 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。