厳密な光線追跡 - その12 [光線追跡エンジンを作る]
前々回と前回で数学をまとめた。Mathematicaでのコーディングを始める前に、エンジン単体ではなくて光学系評価プログラムとするときに必要なことをちょこっとメモしておく。
しかし、例えばレンズ系の性能評価に使おうとすると、これだけでは難しくて、周辺の計算が必要になる。
レンズ系の性能評価をする場合に、光線を追跡する以外に何が必要かというと
絞り位置が決まることで主光線が決まる。主光線とは瞳の中心、つまりは絞りの中心を通る光線のことで、これが基準になる。また明るさとは
そして視野は
実は光線追跡をする上では、これら評価のために与えられる量は近軸量であるべきである。
例えば正弦条件を守らなければ、マージナル光線の入射角度が同じであっても像の明るさ(スポットの光強度)は違うし、歪曲収差によって画面に入る物体範囲は違ってくる。収差によって評価基準が変わってしまっては正しい評価にならない。
画角の広いレンズを設計しようとして最適化を繰り返した結果、ただ負の歪曲が増えただけ、なんてことが起こるのはこういった評価基準の与え方が原因であることが多い。同じ理由で近軸量が最適化のパラメータに含まれてはいけない。まあ、そういったことは今回の光線追跡エンジンの話とは関係ない。
しかし案外光線追跡エンジンと、近軸量を計算するルーチンとのやり取りはオブジェクト設計上は結構難しくて工夫が必要である。
近軸量の計算は以前近軸マトリクスを使った計算をまとめた。とりあえずはあれがそのまま使えるが、悩ましい問題が存在する。その話はまた別途ということにする。
次回から具体的なMathematicaのコーディングに入る。
3.6 残った必要なこと
これで実質的に光線追跡エンジンの数学はおしまいである。 これまでの計算ができれば厳密な意味での光線追跡が実行できる。しかし、例えばレンズ系の性能評価に使おうとすると、これだけでは難しくて、周辺の計算が必要になる。
レンズ系の性能評価をする場合に、光線を追跡する以外に何が必要かというと
- 絞り位置
- 明るさ
- 視野
絞り位置が決まることで主光線が決まる。主光線とは瞳の中心、つまりは絞りの中心を通る光線のことで、これが基準になる。また明るさとは
- 開放F値(F-Number)
- N.A.(Numerical Aperture)
- 入射瞳径
そして視野は
- 画角
- 最大像高
- 最大物体高
実は光線追跡をする上では、これら評価のために与えられる量は近軸量であるべきである。
例えば正弦条件を守らなければ、マージナル光線の入射角度が同じであっても像の明るさ(スポットの光強度)は違うし、歪曲収差によって画面に入る物体範囲は違ってくる。収差によって評価基準が変わってしまっては正しい評価にならない。
画角の広いレンズを設計しようとして最適化を繰り返した結果、ただ負の歪曲が増えただけ、なんてことが起こるのはこういった評価基準の与え方が原因であることが多い。同じ理由で近軸量が最適化のパラメータに含まれてはいけない。まあ、そういったことは今回の光線追跡エンジンの話とは関係ない。
しかし案外光線追跡エンジンと、近軸量を計算するルーチンとのやり取りはオブジェクト設計上は結構難しくて工夫が必要である。
近軸量の計算は以前近軸マトリクスを使った計算をまとめた。とりあえずはあれがそのまま使えるが、悩ましい問題が存在する。その話はまた別途ということにする。
次回から具体的なMathematicaのコーディングに入る。
2012-10-21 22:03
nice!(0)
コメント(0)
トラックバック(0)
コメント 0