ポリゴン オブジェクト



ポリゴン オブジェクトは、非常に一般的なユーザー定義オブジェクトです。これは、ある部分が反射性を示し、それ以外の部分が屈折性または吸収性を示す、開いたポリゴン面または閉じたポリゴン体積を定義するために使用できます。ポリゴン オブジェクトは、3D 三角形の集合に基づきます。各三角形の頂点は、POB 拡張子のファイルに記録されます。詳細については、「ポリゴン オブジェクトの定義」を参照してください。「[オブジェクトをディテクタとする] (Objects as detectors)」の説明にあるように、ポリゴン オブジェクトをディテクタとして使用できます。

頂点またはポリゴンの合計数に関する規定の制限はありません。POB ファイル名は、ポリゴン オブジェクト行の「コメント」列で参照されます。たとえば、POB ファイル myobject.POB が <objects>\Polygon Objects フォルダに配置されている場合 (「[フォルダ] (Folders)」を参照)、NSC エディタでポリゴン オブジェクト タイプ行のコメント列に「myobject.POB」と指定します。ポリゴン オブジェクトでは、次の 2 つのパラメータが必要です。

パラメータ番号 説明 フェイス名 フェイス番号
1 倍率。POB ファイルのすべての頂点は、このパラメータで乗じられます。 該当なし 該当なし
2 POB ファイルの定義対象が体積であるか、それとも面であるかを示すフラグ。[体積?] (Is Volume?) パラメータがゼロの場合、POB ファイルは開いた面を定義していると想定されます。[体積?] (Is Volume?) パラメータがゼロ以外の値の場合は、POB ファイルは閉じられた体積を定義していると想定されます。 該当なし 該当なし

フェーセット オブジェクトを通じた光線追跡の制限については、「フェーセット オブジェクトの特別な考慮事項」を参照してください。ディテクタとして使用する POB ファイルの作成ツールについては、「[ポリゴン オブジェクトの作製] (Create Polygon Object)」を参照してください。

基準座標はローカル座標の (0, 0, 0) であり、オブジェクトを構成するポリゴンは、基準点から見た任意の場所に配置できます。各フェイスには、POB ファイルで定義されたフェイス番号が割り当てられています。詳細については、以下を参照してください。

ポリゴン オブジェクトの定義

ポリゴン オブジェクトとは、3D 空間の三角形の集合で構成されるユーザー定義オブジェクトのことです。三角形は、末尾が拡張子 POB (ポリゴン オブジェクト用) のテキスト ファイルで定義されます。ポリゴン上の各フェイスまたはフェイスのグループには、必要に応じて固有なフェイス番号を割り当てることができます。単一のオブジェクトで設定できる固有なフェイスの合計数には制限があります。詳細については、「オブジェクト フェイス」を参照してください。

閉じた体積を形成するポリゴン オブジェクトに、内部フェイスを含めることはできません。すべてのフェイスは、オブジェクトの外部にあって、体積の内部と外部間の境界を定義する必要があります。ビーム スプリッタなどの接合型境界のオブジェクトを作成するには、2 つ以上の個別のポリゴン オブジェクトを使用し、互いに接触させて配置します。接触させてオブジェクトを配置する方法の詳細については、「他のオブジェクトの内部、隣接する場所、重複する場所へのオブジェクトの配置」を参照してください。

このファイル形式は、任意のテキスト エディタで作成して編集することができます。このファイルは、一連のデータ行で構成されます。各行は 1 つの文字または記号で始まり、その記号に対するデータが続きます。サポートされる記号とそれぞれの意味を以下に定義します。

コメント記号 : !

記号「!」は、コメント行の定義に使用します。

構文 :

! Any comment here

例 :

! A dove prism

フェイス名記号 : C

フェイスの名前は、C コマンドを使用して定義できます。

構文 :

C facenumber "any name here"

例 :

C 0 “すべてのフェイス”

フェイス名は、オブジェクトのさまざまなフェイスの名前を [オブジェクト] (Object) ダイアログ ボックスに表示するために使用されます。名前は、二重引用符で囲む必要があることに注意してください。このコマンドはオプションです。

非表示記号 : I

描画しない頂点を接続する線 (同じ平面にある 2 つの隣接する三角形間の線など) は、非表示にするように指定できます。2 つの頂点を非表示とするように指定するには、記号「I」に続けて、2 つの頂点番号を記入します。このように指定した頂点を接続する線は描画されません。

これは 3D レイアウト プロットのみに影響し、ポリゴン オブジェクトの描画に対する外観上の拡張機能にすぎません。

構文 :

I v1 v2

例 :

I 7 9

頂点番号は整数にする必要があることに注意してください。番号は、スペースで区切ります。I コマンドは、非表示の頂点を参照する三角形または矩形の前に配置する必要があります。

頂点記号 : V

頂点は、記号「V」に続いて、頂点番号、頂点の x、y、z 座標を記述して定義します。

構文 :

V number x y z

例 :

V 1 -1.0 -1.0 0.0

頂点番号は整数に、x、y、z 座標は浮動小数点数にする必要があることに注意してください。番号は、スペースで区切ります。

三角形記号 : T

三角形は、3 つの頂点を接続することによって定義します。

構文 :

T vertex1 vertex2 vertex3 isreflective face

頂点番号は、ファイルで定義済みの整数の頂点番号にする必要があります。「isreflective」フラグは、面が吸収性の場合は -1、反射性の場合は 1、屈折性の場合は 0 にします。このフラグを使用すると、同じポリゴン オブジェクトまたはフェイス内で、一部の三角形を反射性にして、その他の三角形を屈折性または吸収性にすることができます。ただし、isreflective フラグは、ポリゴン オブジェクトのブール演算によって作成されるオブジェクトでは考慮されません。

face の値は、三角形が属するフェイスを定義します。フェイス番号を省略すると、フェイス 0 を指定したものと見なされます。

例 :

T 1 2 3 0 2

これは、フェイス 2 に属する頂点 1、2、3 を接続する屈折性の三角形を定義しています。

矩形記号 : R

矩形は、4 つの頂点を接続することによって定義します。それ以外の点では、三角形とよく似ています。内部的には、OpticStudio によって矩形が 2 つの三角形に変換されます。

構文 :

R vertex1 vertex2 vertex3 vertex4 isreflective face

頂点番号は、ファイルで定義済みの整数の頂点番号にする必要があります。頂点の順番は任意ではありません。これは、「蝶ネクタイ」を描くような順番ではなく、連続的な時計回りまたは反時計回りの順番で指定する必要があります。4 つの頂点からなるすべてのポリゴンで、閉じた矩形が形成されるとは限りません。より複雑な形状では、代わりに複数の三角形のコマンドを使用します。「isreflective」フラグは、面が吸収性の場合は -1、反射性の場合は 1、屈折性の場合は 0 にします。このフラグを使用すると、同じポリゴン オブジェクトまたはフェイス内で、一部の矩形を反射性にして、その他の矩形を屈折性または吸収性にすることができます。ただし、isreflective フラグは、ポリゴン オブジェクトのブール演算によって作成されるオブジェクトでは考慮されません。

face の値は、矩形が属するフェイスを定義します。フェイス番号を省略すると、フェイス 0 を指定したものと見なされます。

例 :

R 1 2 3 4 1 0

これは、フェイス 0 に属する頂点 1、2、3、4 をつなげた反射性の矩形を定義しています。

ポリゴン オブジェクト内の最大三角形

ポリゴン オブジェクトに含めることができる三角形の数に規定の上限はありません。最終的な上限は、コンピュータで使用できる実際の RAM または仮想 RAM の容量によって決定されます。各三角形は、約 100 バイトのメモリを占有します。しかし、OpticStudio では、レンズ データの複数のコピーが同時に保持されることがよくあるため、目安として、三角形ごとに 500 バイトの RAM が必要です。2000 個の三角形オブジェクトがある場合、RAM に約 1MB の空き容量が必要です。より現実的な上限は、コンピュータの処理速度です。三角形の数が非常に多くなると、OpticStudio の実行速度低下が顕著になります。

POB ファイルの例

次に、屈折性の材質の立方体を定義する POB ファイルのテキスト全体を示します。このファイルは、サンプル

CUBE.POB として付属しています。立方体の 8 つのサイドすべては、フェイス 0 に属します。

 
! A cube
! front face vertices
V 1 -1 -1 0
V 2 1 -1 0
V 3 1 1 0
V 4 -1 1 0
! back face vertices
V 5 -1 -1 2
V 6 1 -1 2
V 7 1 1 2
V 8 -1 1 2
! Front
R 1 2 3 4 0 0
! Back
R 5 6 7 8 0 0
! Top
R 4 3 7 8 0 0
! Bottom
R 1 2 6 5 0 0
! Left side
R 1 4 8 5 0 0
! Right side
R 2 3 7 6 0 0
 

8 つの「V」コマンドは、立方体の 8 つのコーナーの頂点座標を定義しています。6 つの「R」コマンドは、立方体の 6 つのフェイスを定義しています。フェイスの幅は 2 単位で、後ろのフェイスにある頂点の z 座標は 2 単位に定義されているため、その形状は完全な立方体になります。すべての座標は、オブジェクトの基準点 (この場合では、前のフェイスの中心) を基準にした座標です。立方体の中心に基準点を配置するには、頂点の定義を次のように変更します。

V 1 -1 -1 -1

V 2 1 -1 -1

V 3 1 1 -1

V 4 -1 1 -1

V 5 -1 -1 1

V 6 1 -1 1

V 7 1 1 1

V 8 -1 1 1

別のサンプルについては、OpticStudio に付属する各種の POB ファイルを参照してください。これらのファイルは、<objects>\Polygon Objects フォルダ (「[フォルダ] (Folders)」を参照) にあります。

次へ :