本稿ではノンシーケンシャル モードにおける光線追跡の方法と、そのデータの取得方法を紹介します。ノンシーケンシャル モードにおける、光源オブジェクトと、ディテクタ オブジェクトや、ノンシーケンシャル モードでの光線追跡、光線データベース及び文字列フィルタについても説明しています。
著者 Takashi Matsumoto
ハイブリッド ノンシーケンシャル モードによる光線追跡は、ノンシーケンシャル コンポーネント グループ内部で近軸光線を追跡しない点を除き、シーケンシャル モードとまったく同様に機能します。ノンシーケンシャル光線追跡のみのモードでは、光源オブジェクトから光線を送出し、ディテクタ オブジェクトで定量的な情報を取得します。
光源オブジェクト
光源オブジェクトは、適切な空間分布と角度分布で光学系に光線を送出し、光学系の中で実際の光源によって発生する放射を表現します。
光源オブジェクトは、次の 2 つのカテゴリに分類できます。
- パラメトリック光源 : 光源の放射輝度を何らかの数式で計算するようにした光源で、この数式のパラメータをエディタで入力します。発光ダイオードやフィラメントなどがこの光源に該当します。
- 測定済み光源 : IESNA 光源、EULUMDAT 光源、光源ファイルなどが該当します。IESNA および EULUMDAT のデータ ファイルは遠視野(角度) データのみを記述し、光源を空間の点としてモデル化します。光源ファイル オブジェクトで使用する .DAT フォーマットおよび .SDF フォーマットは、光線の空間データと角度データの両方を記述し、光源の全放射を定義します。これらのフォーマットによるデータは、多くの LED 製造元とランプ製造元から無償で提供されています。また、Zemax の ProSource や Opsira の LucaRaymaker などのサード パーティー プログラムでエクスポートすることもできます。ASCII および バイナリによる.DAT フォーマットおよび .SDF フォーマットについてはユーザ マニュアルに説明があります。これら 2 つのフォーマットの違いは、.SDF フォーマットではスペクトル (波長) データを記述し、.DATフォーマットではそのデータを記述していない点にあります。
光源の波長は、システム エクスプローラの [波長] (Wavelength) グループでシーケンシャル光学系の場合と同様に定義します。その他の定義方法もありますが、これらについては「測色」で解説します。光源の単位 (ワットまたはルーメン) は、システム エクスプローラの [単位] (Units) グループで選択します。
光源は、他のオブジェクトと同様にグローバル座標系に配置します。すべての光源には、ノンシーケンシャル コンポーネント エディタのパラメータ 1 ~ 5 を使用して、いくつかの基本的な情報を定義します。この情報は以下のとおりです。
- [描画光線数] (#Layout Rays) : レイアウト プロットを作成するときに光源から発するランダム光線の数を定義します。通常は、100 本未満の小さな値として、描画の目的にのみ使用します。
- [解析光線数] (#Analysis Rays) : 解析を実行するときに光源から発するランダム光線の数を定義します。通常は、描画光線数よりも、はるかに大きな値を設定し、数百万から、場合によっては数十億本もの光線を使用します。
- [パワー (単位)](Power (units)) : 特定の範囲で得られる光源の総出力です。出力の単位は、システム エクスプローラで光学系の光源単位で指定します。
- [波長番号](Wavenumber) : ランダム光線の追跡に使用する波長の番号です。ゼロは多色性を意味し、波長データ エディタで定義した重み付けに応じて光線の波長がランダムに選択されます。
- [色番号](Color #) : この光源からの光線を描画する際に使用するペンの色です。ゼロの場合はデフォルトの色が選択されます。各ペンのRGB 値は、[プロジェクト環境設定](Project Preferences) で定義します。
パラメトリック光源では、上記以外のパラメータも使用して放射を定義します。
光源オブジェクトには材質を指定しません。光源を発した光線が他の光源オブジェクトと相互作用することはありません。光線は空気中に送出することが普通ですが、必要に応じて空気とは異なる屈折率を持つ物質に送出することも可能です。まず、適切な形状と屈折率を持つジオメトリ オブジェクトを定義し、その内部に光源オブジェクトを配置します。[内部配置] (Inside Of) パラメータを使用して、そのジオメトリ オブジェクトの屈折率へ光線を送出することを指定します。
注 : ジオメトリ オブジェクトの内部に光源オブジェクトを置いている場合は [内部配置] (Inside Of) パラメータを使用する必要があります。これを適用しないと、誤った光線追跡結果が得られます。
ディテクタ オブジェクト
光線はディテクタ オブジェクトで検出します。ほぼすべての種類のジオメトリ オブジェクトはディテクタとしても使用できますが、専用のディテクタ オブジェクトは空間データと角度データの表示を目的に設計され、実験で測定したようにデータを表示するうえで必要な制御機能を備えています。
最も広く使用するディテクタ オブジェクトはディテクタ (矩形) です。これは、CCD アレイのような、ピクセルの二次元アレイです。検出と同時に光線が終了するように、ディテクタの材質には ABSORB を指定することが普通です。なお、MIRROR の指定や必要に応じて後述のコーティングの適用もできるほか、材質のセルを空欄のままにして空気に設定することも可能です。材質を空欄のままにした場合、検出された光線には何の変化も現れません。この設定が便利な場合もありますが、光線がディテクタと複数回相互作用しても光線のエネルギーが失われないので、ディテクタにエネルギーが保存されていないように見えることがあり、取り扱いに注意が必要です。
解析光線の追跡
サンプル ファイルの Samples\Non-sequential\Sources\SimpleLXHL-BD01 LED model.ZMX を開きます。このファイルには、LumiLeds LXHL-BD01 LED のデータシートのデータを設定した光源 (ラジアル) と 100 x100 ピクセルに設定したディテクタ (矩形) の 2 つのオブジェクトのみが収められています。
光源オブジェクトの総出力は 27 ルーメンで、描画目的のレイアウト光線を 30 本、解析光線を 100 万本使用しています。[解析] (Analysis) タブの [光線追跡](Ray Trace) アイコンをクリックします。
[クリアして追跡](Clear and Trace) をクリックして 100 万本の解析光線を追跡し、 [終了] (Exit) をクリックします。コンピュータが複数の CPU を備えている場合、使用可能なすべての CPU に演算処理が自動的に分散します。
[解析](Analysis) → [ディテクタ ビューア] (Detector Viewer) をクリックし、ディテクタに記録されたデータを表示します。
ディテクタ ビューアの [設定] (Settings) ダイアログはきわめて高機能で、表示するデータとしてインコヒーレント照度、光度、コヒーレント照度、位相 (この例では無意味です)、輝度を選択できます。複数のディテクタ ビューア ウィンドウを同時に開いて、それぞれに同じデータを異なる視点で表示させることもできます。
疑似カラーやグレー スケールでデータを表示できるほか、 [表示方法] (Show As) コントロールを使用してデータの断面を確認することもできます。断面ビューを使用する場合、行または列に 0 を指定すると、必ず中央の行または列での断面が得られます。データには線形スケールまたは対数スケールを適用できます。
また、各ピクセルとその隣接ピクセルとの間でデータの平均値をとることで、データをスムージングすることも可能です。この演算は、 [スムージング] (Smoothing) パラメータで指定した回数で繰り返すことができます。これにより、空間または角度の分解能は低下するものの、S/N 比の改善を図ることができます。
光線データベース
ディテクタ ビューアはきわめて便利ですが、光線データに直接アクセスすることが必要になることもあります。その場合は、 [光線を保存] (Save Rays) をチェックしてから [クリアして追跡](Clear and Trace) をクリックします。
この光線追跡に要する時間が前回よりも若干長くなることがわかります。これは、 100 万本の光線の履歴をディスクに書き込むためです。次に、[解析] (Analysis) → [光線データベース ビューア](Ray Database Viewer) をクリックします。
光線データベース ビューアには、追跡した光線すべての履歴が表示されます。すべての光線の強度位置、方向余弦、法線、光路長、偏光データを表示できますが、ここでは強度のみを示しています。光線は複数のセグメントに分割され、各セグメントはオブジェクトとの 1 回の交差を表しています。セグメント 0 は光源位置での光線データです。セグメントの終端で発生する現象を X、 R、 T、 S などの各種パラメータで示します (X = 終了、R = 反射など)。以下の例はきわめて単純で、光線を送出し、1 回だけ追跡して終了します。
当然のことながら、現実の光学系にはより多くのセグメントが存在します。サンプル ファイル led_model.zmx (現在使用中のファイルと同じフォルダにあります) をロードして、以下の設定で解析光線を追跡します。
光線データベース ビューアで光線の履歴を表示します。光線分割を有効に設定しているので、 [ブランチへ展開] (Expand into Branches) オプションを使用して個々の子光線を識別できます。
フィルタ文字列
OpticStudio では追跡したすべての光線の履歴が記録されているので、フィルタ文字列を使用して、特定の条件に合致する光線を容易に特定できます。たとえば、 led model.zmx ファイルのオブジェクト 2 は光源の背後にある反射鏡です。光線の一部は、前方に送出され、このミラーには到達しませんが、これらとは逆方向に進み、反射鏡で反射してから前方へ伝播する光線もあります。
フィルタ文字列 R2 を使用すると、オブジェクト 2 で反射する光線のみが表示されます。
!R2 を使用すると、オブジェクト 2 で反射せずに最初から前方に伝播する光線が表示されます。複数のフィルタを AND、 OR、 NOT、 XOR などで組み合わせることで、調査対象とする光線の検索条件を厳密に規定するフィルタ文字列を作成できます。たとえば、オブジェクト 7 および オブジェクト 9 に到達してもオブジェクト 6 では反射していない光線、またはオブジェクト 2 に到達していない光線を選択するフィルタ文字列は (H7 & H9 & !R6) | M2 です。
フィルタ文字列は、光学系を詳細に解析するうえで最も重要なツールです。光線データベースでもフィルタ文字列を使用できます。データベースに保存する前のデータおよび保存済みのデータのどちらにもフィルタを適用できます。たとえば、迷光のシミュレーションでは、100 万本の光線を追跡し、そのうちディテクタに到達する迷光 1 本の検出が必要になることがあります。この場合、ディテクタに到達する光線のみをディスクに保存すれば、以降の検討での取り扱いが容易なデータが得られます。
光線データベース ビューア、レイアウト プロット、ディテクタ ビューアで光線データベースのデータを再生できます。フィルタを適用済みのデータにさらにフィルタを適用することもできます。光線データベース ビューアでは、光線データベースにフィルタを適用し、抽出したデータのみを新規ファイルに保存することもできます。
KA-01919
コメント
サインインしてコメントを残してください。