SSブログ

近軸光線追跡 - その12 [近軸光線追跡]

レンズを描かせるのは簡単で面白いのでついよけいにやってしまった。今日は今回のまとめをやる。

7.5  注意

前回までのレンズの表示は簡単で便利だけど、いくつか問題がある。
  • 外形を正確に指定する必要がある
  • 絞りは描かれない
  • 光線も描かれない
近軸しか計算していないのでこれらはしかたがない。絞り位置と画角とF/#をもらって、厳密な光線追跡で主光線とマージナルを追跡すればクリアアパチャは決まるので、それによって描画するのが望ましい。が、今回の趣旨とはずれるのでやめておく。

また、
  • 球面レンズの形状は磨きによる機械加工を前提
としている。従って両凸レンズの外周部に平面のコバがあるようなレンズ形状は描かないし、逆に凹面には平面のコバが必ずつく。また1枚のレンズの裏表の面で外形の指定が異なる場合、両凸レンズでは小さい方に統一される。この解釈はCode-VやZEMAXなんかの書き方と違う場合が発生する。

7.6  ヒマがあれば

近軸追跡は簡単だし、Mathematicaなら実装は式をそのまま書けばいいので間違いも少ない。

グラフィクスのおまけはおもちゃとしては面白いし、ちゃんとオプションを指定した3次元描画をEPSでExportしてIllustratorなんかで微調整すればビットマップではないので、Code-Vの描画出力よりきれいなものができる。しかしまあそれだけのことで、まともなレンズの設計に使うなどということはできない。

そう考えると、厳密な光線追跡をMathematicaで書いて、収差なんかの評価ができるようにするぐらいまではそれほど手間ではない。収差図が描ければ評価用としては使い物になる。

7.7  設計ツールへの道

7.7.1  最適化の問題

しかし、残念ながら設計に使おうとするとまったく歯が立たない。まず光線追跡をMathematicaで書いたのでは遅くて最適化のための収束計算には使えない。光線追跡だけをネイティブコードにしてもパラメータのやり取りが多すぎてパフォーマンスは出ないだろう。

また、パラメータを動かす範囲に注意しなければすぐ光線が通らなくなって評価不能に陥る。このコンストレインツ(Constraints)のアルゴリズムは非常に難しい。Code-VやZEMAXといったプロプライエタリなソフトが広く使われているのは、この処理のノウハウが実装されている、という点も大きい。

7.7.2  屈折率データベース

屈折率のデータベースも必須である。レンズに使うガラスはSellmeierの式のフィットで十分なのでガラスメーカのカタログを変換できればいい。しかし公開されているSCHOTT、保谷、オハラ、住田、Corningを集めるとそれだけでも膨大な量がある。

7.7.3  変換ツール

他にも、ハードディスクの肥やしになっているCode-VのSEQデータを読み込めないとCode-Vのかわりとしては使えない。今回のように手作業でできる範囲ならまだいいけど、設計に使うにはたくさんのパラメータを引き継ぐ必要がある。また、SEQファイルは文法がシンプルでない(いかにもツギハギしましたという感じ)のでパーザの実装はかなりの手間が予想できる。

7.8  なにも1から書かなくても

世の中にはえらい人がいてちゃんと動作するレンズ設計ツールがいくつか公開されている。また、Code-VやZEMAX以外にも値段と機能はピンキリだけどいろいろある。そもそも僕より上のちょうど今頃定年を迎えた世代の設計者たちの多くは自分で実装した設計ツールを持っていて、自分の設計ノウハウをコマゴマと追加実装していた。僕は設計ソフトを自分で書かなかった最初の世代に属する(一番最初は音響カプラでACCOS Vを呼んでやった。知ってる人いる?)。

しかし、残念ながらMacで動作するものはない。唯一「Optica」というMathematicaのアプリケーションパッケージがあって、当然MathematicaはMacでも動作するので、皆無であるとは言えないんだけど、このOptica、結構高いのと記述に癖があってなかなか使いやすいとは言えない。また一般のレンズ設計に使う、というよりはレンズを含んだ実験光学系のようなものを対象にしている、という感じでなんかちょっと違う。

やはり、Macユーザとしては自分で作ってそれを公開する、という道を選ぶべきだろう。新しく書くなら昔のしがらみにはこだわらず、データ構造やユーザインタフェイスはモダンなものにすべきである。そういえばそう考えて始めたのが薄膜設計ソフトだった。あれ、途中でほったらかしになっている。グラフィクス表示もモダンなObjective-Cのインタフェイスを持ったフレームワークを作ろうとしてやっぱりほったらかしになっている。

そのうち、ウィンドウズユーザに羨ましがられるようなのを作ろう。定年後のプロジェクトかな。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

献立10/09献立10/10 ブログトップ

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