[75] キャッシュ、ロバスト、瞳シフトと圧縮_レイエイミングの使い方 (4)

OpticStudio

こんにちは。光学、光でのお困りごとがありましたか?

光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。 このページでは、OpticStudioのクセあり機能、レイエイミングを使いこなすオプション、キャッシュ、ロバスト、瞳のシフトと圧縮ついて説明します。これらのオプションは、レイエイミングの成功をサポートするための機能です。

結論

  • キャッシュは、レイエイミングに成功した条件を保持しておいて、次の光線追跡の時のスタート地点として使用する機能です。探索時間が短縮されるメリットがあります。
  • ロバストなレイエイミングは、通常のレイエイミングの後に探索結果の正確性をチェックする追加処理を行う機能です。探索時間が長くなりますが、探索結果の信頼性が上がります。
  • 瞳シフトと圧縮は、レイエイミングの探索のスタート地点である近軸入射瞳の位置と大きさを調整するオプションです。細かい数値の調整は不要ですが、うまく設定することでレイエイミングが実際の入射瞳を早く見つけることができます。

このページの使い方

このページで参考にした技術記事(ナレッジベース)は、レイエイミングの使用法 です。この記事は、OpticStudioで広角レンズや軸外し系を設計するときに使用する、レイエイミングの使い方の概要を紹介しています。

このページでは、ナレッジベースで使われている光学用語、技術用語、前提知識について、もう一歩踏み込んだ説明を加えていきます。ナレッジベースの長さは記事によってまちまちなので、いくつかのブロックに分けて注釈を加えています。この記事は4番目です。1番目は、レイエイミングがオフの場合_レイエイミングの使い方 (1) です。2番目は、瞳収差ってなに?_レイエイミングの使い方 (2) です。3番目は、近軸 vs 実光線_レイエイミングの使い方 (3) です。

レイエイミングをサポートするオプション

瞳収差が大きなことが判明したり、入射瞳が軸外にある光学系だったりして、レイエイミングが必要になったとします。レイエイミングは所定のプロセス(アルゴリズム)に沿って実絞りを満たす光線の経路を探索しますが、いつも成功するわけではありませんし、正しい経路を見つけるのに時間がかかる場合もあります。

そのような状況に対して、私たちができるのはレイエイミングのアルゴリズムを補助するような設定です。レイエイミングを正しい方向に誘導することで、デフォルトの設定では見つけられなかった経路が見つかったり、短時間で見つけられる可能性が上がります。

レイエイミングのゴールは「実絞りを満たす光線の経路の発見」です。レイエイミングのオプション機能は、ゴールを達成するために私たちがレイエイミングに与えるヒントです。

ヒントとは主に、レイエイミングが経路を探索するときの「最初にトライする経路」です。つまりは、「正しそうな入射瞳の場所、大きさ」の情報です。

注意: このページの説明は筆者の想像が多分に含まれます

レイエイミングのオプション機能については、情報があまり公開されていません。おそらく、正しい経路を探索するプロセス自体に知的財産としての価値があり、ブラックボックスになっているものと推察されます。

そのため、このページではヘルプファイルや技術記事の記載内容から、筆者が「たぶん、こんな考え方に基づいて、こんな感じの処理が行われているのではなかろうか」と推察したことを書ています。正確な情報が必要な場合は、Zemax公式(1番目に訪れる場所)へお願いします。

OpticStudioが実際にどういうアルゴリズムで実際の入射瞳位置を探し出しているか、また、その計算を効率化しているかは、いちユーザの私たちには分からない部分です。それでも、公開されている情報から少しでも機能の背景を推し量ることで、より有効に機能を活用できると考えます。

レイエイミングキャッシュを使用 (Use Ray Aiming Cache)

レイエイミングをオンにすると、デフォルトでチェックが入るオプションになります。

このオプションは「レイエイミングの座標をキャッシュする」、つまりは、ある視野点から出射する光線が入射する実際の入射瞳の位置を記憶するオプションです。

一度レイエイミングに成功していれば、例えば最適化や公差解析など、光学系が極端に変わらない処理を行っている場合は、入射瞳の位置もあまり変わりません。そのため、前回得られた実際の入射瞳の位置を探索のスタート地点としておけば、その近くで正しい経路が見つかる可能性が高いです。

図 75-1 レイエイミングのキャッシュ。設計がAからA’に微調整されたとき、まずはAの結果を流用する。

ロバストなレイエイミング (Robust Ray Aiming) (低速)

このオプションは、レイエイミングのアルゴリズムに経路の妥当性をチェックするプロセスを加えます。特に広角レンズのように入射瞳が視野によって大きく移動するような場合、実際の入射瞳に入射する主光線の経路が複数見つかる場合があります。

人間が目で見たら「いやいや、その経路は明らかにありえないでしょ」みたいな経路であっても、レイエイミング的には条件を満足する経路が見つかったらOKです。

ロバストなレイエイミングの機能を、上で説明したキャッシュが有効になっていないと機能しない、というヘルプファイルの説明から推察します。筆者の考えでは、ある視野においてレイエイミングが発見した経路の座標情報を、その前後の視野が発見したレイエイミングの座標情報と比較します。複数見つけていた場合は、より座標情報が近い方を採用します。

図 75-2 ロバストなレイエイミングに対する筆者の想像。緑の経路を発見したのち、他の視野の結果を参照して妥当性をチェックする。

ただ、この機能も万能ではありません。唯一見つけた経路が「その経路はありえないでしょ」という場合、ロバストなレイエイミングによるチェックをしても、やはりおかしな経路が追跡されます。

OpticStudio 22.1で追加された強化されたレイエイミングは、この辺りが改善されていて、より正しい経路を見つける能力が向上しているのではないかと期待します。

瞳シフト、瞳圧縮 (実際の入射瞳位置のヒント)

デフォルトのレイエイミングは、近軸入射瞳をスタート地点として経路の探索を始めます。しかし、あきらかに実際の入射瞳の位置はそこではない、とユーザは分かっている場合があります。もしは、OpticStudioが実際の入射瞳位置を推定することもできます。

適切な探索のスタート地点を設定できれば、探索が効率化されて、正しい経路を高い精度で短時間に発見できるというわけです。ユーザがマニュアルでスタート地点を調整することで、詰まりが解消したように動き出すこともあります。

瞳シフトの自動計算 (Automatically Calculate Pupil Shift)

デフォルトで有効になっているこのオプションは、OpticStudioが自動的に瞳のシフト量を推定する機能です。この機能の詳細については、瞳シフトとその計算方法 (Zemax技術記事) にて詳しい説明がありますので、ぜひ参照してください。光ラーニングでも取り上げたいと思います。

図 75-3 瞳シフトが必要になる(極端な)例。瞳シフトとその計算方法からの引用。

筆者の経験上、レイエイミングに失敗する理由に、この瞳シフトの自動計算の値が不自然に大きい場合があります。このオプションをオフにすることで、OpticStudioの推定値が表示されます。よく見るのは、Z軸方向のシフト値が過剰に大きな値になっているケースなどです。

このような場合、一度シフトの値をゼロにして、スタート地点を近軸入射瞳位置に戻してみます。

視野による瞳シフト係数のスケール (Scale pupil shift factors by field)

デフォルトではオフになっています。瞳のシフト量が視野に応じてスケールされる機能です。例えば、広角レンズのような実際の入射瞳が視野に応じて物体側に徐々に移動する場合、視野によってシフト量を調整するのは意味がありそうです。

よく分からないのは、どの瞳シフトの値がスケールの基準になるか、です。瞳シフトの自動計算をオフにするとOpticStudioの入射瞳推定値が表示されます。この値が視野によってスケーリング(調整)されることは想像がつきますが、この値を最大視野で1に正規化してスケーリングするとか、スケーリングの詳細は分かりませんでした。

瞳圧縮 (Pupil Compress)

デフォルトではオフになっているオプションです。これは探索のスタート地点となる近軸入射瞳の大きさを意図的に調整する機能です。ビネッティングファクタの圧縮に似ています。この機能が活躍するのは、近軸入射瞳に対して実際の入射瞳の大きさが小さい時です。

大きな近軸入射瞳めがけて光線を出射すると、光線が光学系を通りにくい場合があります。なので、まずは小さめのビームを出しておいて、実際の入射瞳を満たすようにビームの大きさを徐々に広げるように光線の経路を探索するイメージでしょうか。

図 75-4 瞳圧縮のイメージ。近軸入射瞳より小さいビームを出しておいて、絞りを満たすように広げていく。

瞳シフトや圧縮に与える数値の精度は重要ではない

ここで紹介したレイエイミングのオプション機能は、あくまで補助機能です。より良いスタート地点をレイエイミングに与えて探索を楽にするのが目的なので、例えば瞳シフトの値を小数点以下で調整する必要はありません(おそらく)。

実際、レイエイミングに成功するようになれば、瞳シフトや瞳圧縮の数値を変更しても光線追跡の結果は変わらなくなります。これらのオプション設定は「探索開始時にそもそも光線が通らない」どうしようもない状況への対策なので、一度光線が通り、レイエイミングが探索フェーズに入ってしまえば、あとは当初の目的である「実絞りを満たす経路を見つけ出す」は期待通りに実行されます。

まとめ

ここでは、Zemaxのホームページからアクセスできる公開記事、レイエイミングの使用法 では詳細には触れらていない、レイエイミングのオプション機能を取り上げました。キャッシュ、ロバストなレイエイミング、瞳シフトと圧縮は、うまく活用することでレイエイミングの経路探索をサポートできます。

繰り返しとなりますが、OpticStudioのレイエイミングの探索アルゴリズム、ここで紹介したオプションが探索アルゴリズムに与える影響の詳細は公開されていません。ここの内容は、公開されている情報と筆者の想像による部分が大きいことに留意して、参考程度にお考えください。レイエイミングがうまく経路を発見できることを願っています。

コメント

タイトルとURLをコピーしました