[光源 (ファイル)] (Source File)

[光源 (ファイル)] (Source File) は、光線の座標、余弦、強度がユーザー提供のファイルで定義される光源です。光線データが記述されたファイルの名前は、オブジェクトのコメント列に記載する必要があります。このファイルに拡張子 DAT、SDF、または、TM25RAY を付けて、<data>\Objects\Sources\Source Files フォルダに配置する必要があります (「[フォルダの設定] (Folders)」を参照)。拡張子 SDF、TM25RAY を使用することをお勧めします。DAT は、下位互換性のためのみサポートされています。ファイル形式はテキストまたはバイナリを指定できます。これら両方の形式については、後述します。

拡張子 CRS のクリティカル光線を、光源 (ファイル) オブジェクトとして使用することもできます。  詳細については、「[クリティカル光線セットの生成] (Critical Rayset Generator)」を参照してください。

パラメータは次のとおりです。

パラメータ番号 定義
1 ~ 5 すべての光源オブジェクトで共通するパラメータ」を参照してください。
6 [ランダム化するかどうか] (Randomize?) : ゼロに設定すると、ファイルに記載されている順番で光線が通常どおり追跡されます。ゼロ以外の場合は、ファイルを読み取ったとき、または光源 (オブジェクト) に対して NSC エディタで何らかのパラメータを変更して光源を更新したときに、光線の順番が 1 回ランダムになります。ランダム化機能は、ファイル内にある合計光線数が、メモリ内で保持される光源の最大光線数よりも少ない場合にのみ使用できます。メモリ内で保持される光源の最大光線数よりも多くの光線が存在するファイルは、メモリ内で保持するには大きすぎるため、ランダム化できません。後述するように、これらの大規模なファイルは必要に応じて部分的に読み込まれます。メモリ内で保持される光源の最大光線数は、ユーザー定義可能なパラメータです。「[光源ファイルからメモリに保持する最大光線数] (Maximum Source File Rays In Memory)」を参照してください。
  パラメータ 7、8、9 の場合、表示されるデータは、光源ファイルから読み込まれた解析光線数にのみ基づいています。これは、ファイル内の合計光線数よりも少ない場合があります。
7 [ファイルのパワー/ルーメン] (Power/Lumens In File) : このパラメータの値は参照用で、ファイルの読み込み時に OpticStudio によって設定されます。ユーザーは、この値を変更したり設定したりできません。「バイナリ光源ファイルの形式」の説明にあるとおり、このフィールドの動作は、「光束のみの」形式と「スペクトル カラー」形式とでは異なります。光束のみの形式のファイルの場合は次のようになります。この参照値は、ファイルに記述された光線によって定義されている、現在の光源単位による全パワーです。このパワー計算では、解析で使用される光線数のみが考慮されます。現在の光源単位が測光単位 (ルーメン) である場合、光源ファイル内のワット単位のパワーが、光源ファイルのパラメータ 4 の値で定義した単色波長で測光単位に変換されます。光源が多色の場合、ワット単位のパワーをルーメンに変換する方法はありません。「すべての光源オブジェクトで共通するパラメータ」の説明にあるように、波長はランダムに割り当てられるからです。多色の光源では、このパラメータはゼロに設定されます。各光線の実際のパワーは、前述のパラメータ 3、追跡する光線の本数、および光源ファイルに定義された各光線の相対パワーによって定義されます。スペクトル カラー形式ファイルの場合は次のようになります。各光線の波長は、光源ファイルで定義されています。NSC エディタの波長パラメータの設定に関係なく、これらの波長が追跡で使用されます。この光源が多色の場合でも、パワー/ルーメンの値は有効です。また、現在の光源単位で全パワーを計算するために、ファイル内に定義されている実際の光束と波長の値が使用されます。
8 ~ 9 これらのパラメータの値は参照用で、ファイルの読み込み時に OpticStudio によって設定されます。ユーザーは、これらの値を変更したり設定することはできません。これらの参照値は、光源の μm 単位の最小波長と最大波長です。スペクトル カラー形式のファイルの場合、これらの値はファイルから読み込まれます。光束のみの形式のファイルの場合、これらの値は、光源に対して定義した光学系の波長とカラー スペクトル (存在する場合) によって決定されます。「光源の色とスペクトル成分の定義」を参照してください。

テキスト形式のファイルとバイナリ形式のファイルの比較

テキスト ファイルで現在許容されている最大光線数は 1,000,000 本です。光源テキスト ファイルに 1,000,000 本を超える光線が定義されている場合は、このファイルはバイナリ形式に自動変換されます。元のファイルは「.OLD」拡張子を付けて名前変更され、元のファイルと同じ名前を使用してバイナリ SDF ファイルが新規作成されます。変換後は、古いファイルの保存または削除を求めるオプションが表示されます。この変換により、ディスク上の占有領域 (バイナリ ファイルは同等のテキスト ファイルの約 30% の大きさ)、読み込み時間 (バイナリ ファイルの読み込みはテキスト ファイルよりも約 20 倍高速)、およびシステム メモリ使用量 (大きなバイナリ ファイルであっても、ディスク上に置いたままアクセスできるので RAM がほとんど不要) の増加を抑えることができます。

注: TM25RAY はテキスト形式をサポートしていません。

光源ファイル オブジェクトのメモリ要件

テキスト ファイルとバイナリ ファイルのどちらでも、追跡対象の合計光線数がメモリ内の光源の最大光線数よりも少ない場合は、処理速度を最大化するために、システム メモリに光線が保存されます。これには、各光線で約 32 バイトのメモリ、つまり、1,000,000 本の光線で最大 32 MB のメモリが必要になります。合計光線数がメモリ内の光源の最大光線数よりも多い場合は、光線データはディスクに残され、必要に応じてファイルが読み込まれます。必要なメモリは少なくなるため、膨大な数の光線を追跡できます。その数は、光源ファイルのストレージ容量のみによって制限されます。メモリ内で保持される光源の最大光線数は、ユーザー定義可能なパラメータです。「[光源ファイルからメモリに保持する最大光線数] (Maximum Source File Rays In Memory)」を参照してください。

選択される光線数に関する制限

光源ファイルを使用する際には、描画光線数と解析光線数の値に関する次のような制限があります。

- 解析光線数は、描画光線数以上である必要があります。解析光線数は、NSC エディタで入力した 2 つの数値のうちの大きいほうに設定されます。

- 解析光線数と描画光線数の合計は、ファイルに定義されている光線数を超えることはできません。

バイナリ光源ファイルの形式

バイナリ光源ファイルは、次のようなヘッダー構造からなります。

typedef struct
{
int Identifier; // Format version ID, current value is 1010
unsigned int NbrRays; // The number of rays in the file
char Description[100]; // A text description of the source
float SourceFlux; // The total flux in watts of this source
float RaySetFlux; // The flux in watts represented by this Ray Set
float Wavelength; // The wavelength in micrometers, 0 if a composite
float InclinationBeg, InclinationEnd; // Angular range for ray set (Degrees)
float AzimuthBeg, AzimuthEnd; // Angular range for ray set (Degrees)
long DimensionUnits; // METERS=0, IN=1, CM=2, FEET=3, MM=4
float LocX, LocY,LocZ; // Coordinate Translation of the source
float RotX,RotY,RotZ; // Source rotation (Radians)
float ScaleX, ScaleY, ScaleZ; // Currently unused
float unused1, unused2, unused3, unused4;
int ray_format_type, flux_type;
int reserved1, reserved2;
} NSC_RAY_DATA_HEADER;

データ タイプ float、int、unsigned int は、すべて 32 ビット タイプです。Identifier は、ファイル形式を定義します (現在は 1010)。通常は、より古い形式も OpticStudio で読み込めます。ただし、ファイルの書き込みは現在の形式でのみ実行されます。OpticStudio では、NbrRays、DimensionUnits、ray_format_type、flux_type パラメータのみが使用されます。その他のデータは無視されます。

NbrRays で定義されている、ファイル内の最大有効光線数は 40 億 (4,000,000,000 本の光線) です。この数を超えると、OpticStudio でのデータ ファイルの読み込み時に問題が発生する可能性があります。ray_format_type は光束のみの形式では 0 に、スペクトル カラー形式では 2 に設定する必要があります (両方とも以下で定義する)。その他の形式タイプはサポートされていません。ray_format_type が 0 の場合にのみ、ワットのときは flux_type を 0 に、ルーメンのときは flux_type を 1 に設定します。スペクトル カラー形式の場合は、光束をワット単位で、波長を μm 単位で表します。光束および波長の値と単位は、以下で定義する光線構造で使用されます。

スペクトル カラー形式を使用する場合、光学系でどの波長が定義されていても、OpticStudio では常に、ファイル内に定義されている波長を使用して光線が追跡されます。

ヘッダーの後には、NbrRays の光線構造が続きます。光線構造の形式は、光線の形式タイプに依存しています。光束のみの形式の場合、光線構造は次のとおりです。

typedef struct 
{
float x, y, z;
float l, m, n;
float flux;
} FLUX_ONLY;
 
スペクトル カラー形式の場合、光線の構造は次のとおりです。
 
typedef struct
{
float x, y, z;
float l, m, n;
float flux, wavelength;
} SPECTRAL_COLOR;
 

OpticStudio では、光束のみの形式とスペクトル カラー形式のいずれかを読み込めます。スペクトル カラー形式は、光線追跡データから光源ファイルを生成する場合にのみ使用されます (「[光線データベース ビューア] (Ray Database Viewer)」の「[指定オブジェクトで光線保存/名前] (Save Rays on Object "n" As)」を参照)。

注: 上記は、DAT ファイルと SDF ファイルのデータ形式について説明しています。TM25RAY の形式については、標準文書 ANSI/IES TM-25-20 を参照してください。

テキスト光源ファイルの形式

テキスト光源ファイルは、2 つ整数値のみで構成される、次のような単一行のヘッダー データになります。

number_of_rays dimension_flag

number_of_rays は、ファイル内の合計光線数を示しています。dimension_flag の 0 はメートル、1 はインチ、2 はセンチメートル、3 はフィート、4 はミリメートルを表します。

ファイルの残りの行は、次のような形式になります。

x y z l m n intensity wavelength

「!」記号で始まる行は、すべてコメント行と見なされ無視されます。このテキスト形式を使用すると、1 つのファイルに任意の数の光線を定義できます。ただし、光線数が 1,000,000 本を超えると、このファイルを光源ファイル オブジェクトとして最初に開く際に、ファイルはバイナリ形式に自動変換されます。この変換については、「テキスト形式のファイルとバイナリ形式のファイルの比較」を参照してください。波長の引数はオプションですが、この引数を指定すると、光線は必ず、定義した波長 (μm) で追跡されます。光源ファイルは、バイナリ ファイル形式に関する説明でスペクトル カラー形式について説明されているとおりに扱われます。

光源ファイルにおける強度の正規化

各光線には、異なる相対強度が割り当てられていることがあります。各光線の相対強度値が 1.0 ではない場合、以下で説明するように正規化が実行されます。

光源ファイルが最初にメモリにロードされるときは、各光線の強度が加算されて平均強度へと正規化されます。光源の合計光束がワット単位の数値として定義された場合は、全光線の一部を追跡できるようになります。それらの光線の強度は、合計光束に近似しますが、合計光束とまったく同じ値ではありません。全光線の任意の一部から、必要とされる全パワーの生成を近似するには、正規化を行う必要があります。

TM-25 光線ファイルの読み取り

Zemax OpticStudio 2024 R2 以降、OpticStudio は、拡張子ファイル名「.tm25ray」が付いた TM-25 光線ファイルの読み取りおよび書き込みをサポートします。データ形式は、標準文書 ANSI/IES TM-25-20 で定義されています。データ形式は、偏光多波長をサポートできますが、サポートする必要はありません。ファイルに波長または偏光データが含まれていない場合、OpticStudio は [オブジェクト プロパティ] (Object Porperties) > [光源] (Source) セクションで指定されたユーザー設定を使用します。TM-25 標準のすべての形式がサポートされているわけではないことに注意してください。無効なファイルが OpticStudio にロードされると、エラー メッセージが表示され、TM-25 ソース ファイルと同じフォルダに「sourcefilename.tm25ray.log」というファイル名で対応するログがエクスポートされます。

TM-25 光線ファイルの書き込み

TM-25 光線ファイルが OpticStudio からエクスポートされる場合、位相と電場のデータが光線ごとに追加されます。これは、コヒーレント解析や偏光解析をさらに行うためにファイルを OpticStudio に読み込み直す必要がある場合に便利です。光線追跡中に 「偏光を使用」 (Use Polarization) にチェックが入っていない場合、または、元の ZRD ファイルに偏光データが含まれていない場合、偏光情報は追加されないことに注意してください。

光線ファイルを自分で解析するユーザーのために、以下のように位相と電場のデータが光線ごとにさらに 8 つのデータとして追加されます。

「phase」、「phase_dbl_err」: このデータは、光線データベース ファイル (.ZRD) で使用される starting_phase と同じ意味を持ちます。データは光路長で単位は μm です。ラジアン単位でデータを取得するには、値に 「2*pi/波長」 を掛けるだけです (波長の単位は µm)。ユーザーは 「phase」 を読み取るだけで使用できます。または、両方のデータを double 型として読み取り、それらを合計して精度を向上させることもできます。

exr、exi、eyr、eyi、ezr、ezi : このデータは、光線データベース ファイル (.ZRD) 内の同名のデータと同じ意味を持ちます。

「ZRD 非圧縮完全データ形式 (UFD)」 も参照してください。

TM-25 光線ファイルの読み取り (スペクトル考慮)

Zemax OpticStudio では、すべての光線に放射束 (ワット) と波長が必要です。TM-25 ファイルにこれらのデータがない場合、まず既存のデータから放射束や波長を復元しようとします。データを復元できない場合は、システム設定を別の方法で使用します。詳細については、以下の図を参照してください。
三刺激値 Y (光束) あり 三刺激X、Zあり 放射束あり 波長あり 処理
1 × × 三刺激値 X、Y、Z が存在するということは、その背後に任意のスペクトルが存在する可能性があり、それを復元できないことを意味するため、サポートされていません。
2 × × × 光束である三刺激値 Y だけがあります。視感度関数を調べて、システム波長を使用して三刺激値 Y を放射束に変換します。
3 任意 × 放射束と光束のデータからのみでは波長を決定することはできません。この場合、放射束を使用し、光束は使用しません。
4 任意 × 放射束データは、三刺激値 Y と波長の値から計算することで、視感度関数を調べて取得できます。
5 × × × 放射束はありますが、波長はありません。システム波長を使用します。
6 任意 任意 必要なものはすべてあります (放射束と波長)。

TM-25 光線ファイルの読み取り (偏光)

Zemax OpticStudio では、偏光は 3D 空間の複素ベクトル (Ex、Ey、Ez) である電界の形式で保存されます。TM-25 光線ファイルをエクスポートする際、他のソフトウェアで読み取ることができるように、それらを [ストークス] (Stokes) パラメータに変換します。ストークス パラメータがエクスポートされる方法は、主軸が常にストークス パラメータが定義されているローカル座標の x 軸上に位置するというものです。プログラムでは以下のように計算されます。

  1. グローバル座標で、偏光楕円の長軸ベクトル を計算します。
  2. をグローバル座標の光線ベクトルとして定義します。
  3. グローバル座標で短軸ベクトル を計算します。
  4. 長軸に電界を投影します
  5. 短軸に電界を投影します
  6. ストークス パラメータを以下のように計算します

Zemax OpticStudio では、ローカル座標に長軸/短軸を選択します。長軸データは TM-25 に書き込まれているため、このローカル座標は実際には任意であり、他のソフトウェアは常に正しいローカル座標を見つけてグローバル座標を復元できます。TM-25 をロードする際のストークス パラメータから3D空間の電界への復元は以下のように行われます。

  1. 偏光束を計算します:
  2. [0,1] の範囲内で一様な乱数 rd を生成します。
  3. の場合、光状態をランダム化します。
  4. の場合、偏光楕円上の電界はこの式で示されるように計算されます。
  5. TM-25 光線ファイルからグローバル座標の偏光楕円長軸ベクトル を読み込みます。
  6. 以下のように Ap を E(S) から計算します、
  7. 光線の方向 を中心に角度 Ap 回転 して、グローバル座標でローカル x 軸 を取得します。
  8. 光線の方向であるローカル Z 軸 が既にグローバル座標にあることに注意してください。
  9. グローバル座標におけるローカル y 軸ベクトルを計算します。
  10. グローバル座標で電界を計算します 上記の復元は、標準ドキュメントに準拠した任意の TM-25 光線ファイルで使用できます。TM-25 光線ファイルが Zemax OpticStudio によって生成される場合、電界 (Ex、Ey、Ez) が正確に保存されるため、ストークス パラメーターのデータは使用せず、便宜上これらの電界データのみを読み込むことに注意してください。

光線ファイルのデータ精度

OpticStudio で光線追跡を実行すると、位置、方向、光束などの光線データが、倍精度浮動小数点形式で保存されます。ただし、DAT、SDF、TM25RAY などの光線ファイルをエクスポートする場合、これらのデータは単精度浮動小数点形式で保存されます。その結果、システムの途中でデータを保存し、それを再度読み込んで応答すると、結果が常に異なる可能性があります。この違いは非常に小さく、元のシステムと再生システムの間で、テキスト データを確認したり、マクロ、オペランド、または API からデータを取得したりして、各ピクセルの正確な値を注意深く比較しない限り、気付かれません。

LightningTrace での使用

光源の角度分布は、ファイルの初回読み込み時に光源の遠視野マップを作成することで設定されます。このマップは、光源ファイルと同じフォルダに配置されている FFD ファイルに保存されます。このマップは、光源のすべての光線を使用して作成されるため、[ランダム化] (Randomize) の値 (パラメータ 6) は、LightningTrace の結果に何の影響も及ぼしません。光源のサイズと空間分布は無視されます。

次へ :