この記事では、BSDF 散乱モデルに必要な BSDF データ交換ファイル フォーマットについて解説します。このモデルは、表形式の BSDF データで提供される散乱分布をノンシーケンシャル面に適用する場合に使用します。
著者: Ron Rykowski
はじめに
BSDF データ交換ファイル フォーマットは、BSDF データをコンパクトかつ簡単に転送する手段です。Radiant Vision Systems 社が開発した Imaging Sphere (IS-SA) などのデバイスは、1 回の測定で、全半球の BSDF データを取得できます。このため、そうしたデータをエクスポートして、OpticStudio などの光学設計プログラムで簡単に使用できるようにする方法が必要になります。
このファイル フォーマットは、BSDF 散乱モデルで使用します。散乱モデルの詳細は、ナレッジベース記事「表形式の BSDF データを使用して面散乱分布を定義する方法」を参照してください。このモデルは、入力ファイルに記述された BSDF データを使用して散乱分布を生成し、それを OpticStudio の任意のノンシーケンシャル面に適用できます。
座標系の定義
面からの光の散乱の仕方を記述する場合、4 つの重要な角度があります。以下に、それら重要な順に示します。
-
サンプル回転角 (列挙ラベル : SampleRotation)
-
入射角 (列挙ラベル : AngleOfIncidence)
-
散乱方位角 (列挙ラベル : ScatterAzimuth)
-
散乱動径角 (列挙ラベル : ScatterRadial)
これら 4 つの角度の順番が重要です。すべてのサンプル回転角のそれぞれについて、複数の入射角を定義でき、すべての入射角のそれぞれについて、複数の方位角を定義できるという具合に続きます。
図 1. 散乱データのやり取りで重要となる 4 つの BSDF 角。
ScatterRadial と ScatterAzimuth の両角度は、BRDF の正反射の角度を基準に定義されることに注意してください。こうすることで、転送が必要な値の数を、特にほとんどが正反射するサンプルの場合、減らすことができます。BTDF の場合、ScatterRadial と ScatterAzimuth の両角度は、直接透過の角度を基準に定義されます。
ScatterAzimuth と ScatterRadial の両角度は、正反射の角度を基準に定義されます。こうすることで、転送が必要なデータの量を、特にほとんどが正反射するサンプルの場合、大幅に減らすことができます。動径角は、0°が正反射の角度で定義され、外側に向かうにつれて大きくなります。方位角は、正反射の角度からサンプルに垂直な軸の方向を 0°として、反時計回りに大きくなります。Radiant Vision Systems 社の IS-SA のデータは、この座標系に合わせて回転変換されます。IS-SA の照明軸が方位角 0°で定義されていないためです。
図 2. 正反射点を中心とする変換。上の図は、AngleOfIncidence が 30°のサンプルに対する元の半球データです。下の図は、正反射点が中心となるように変換したデータです。データが回転したように見えることに注意してください。方位角 0°は、このフォーマットでは照明の軸に沿って定義されますが、Imaging Sphere の標準座標系 (この変換を示す目的で使用) では、上の図のように照明軸に垂直な方向として定義されています。
ファイルフォーマットの定義
BSDF データ交換ファイルは、*.BSDF を拡張子とする、フォーマットされたテキスト ファイルに過ぎません。下表に、ファイルの各テキストおよびデータ行を、設定可能な値の例とともに示します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表 1. BSDF データ交換フォーマットの行の説明。変数設定のいくつかは変更すると列挙のフォーマットに影響する場合があります。具体的な詳細は、「フォーマットに関する注釈」を参照してください。
たとえば、組み込みサンプル ファイル BrownVinyl.bsdf の場合、下図のような注釈を加えるでしょう。
フォーマットに関する注釈
行 注釈
# 記号で始まる行は、いずれもコメント行として無視されます。
- Source 変数には現在、次の 1 つのオプションしかありません : Measured
-
Symmetry 変数には、次の 3 つのオプションがあります : PlaneSymmetrical、ASymmetrical、ASymmetrical4D
PlaneSymmetrical
測定データが、測定の照明軸に対して対称であり、方位角データは 180°だけを転送します。この設定は、面対称の等方性サンプルに使用します。
Asymmetrical
.測定データに対称性が一切なく、サンプル回転もありません。方位角全 360°のデータを転送します。(サンプル回転が 1 つだけの) 等方性サンプルに使用します。
ASymmetrical4D
測定データに対称性が一切なく、サンプル回転が含まれます。方位角全 360°のデータを転送します。(サンプル回転が複数存在する) 異方性サンプルに使用します。
-
SpectralContent 変数には、次の 2 つのオプションがあります : Monochrome、XYZ
現在、Radiant Vision Systems 社の IS-SA は、全スペクトル成分を測定せず、三刺激値データのみを測定します。Monochrome は三刺激値 Y (測光量) と同じです。
Monochrome
DataBegin から DataEnd の間には、列挙データのグループが 1 つしかありません。このグループには、DataBegin 行 (表 1 の第 14 行) より上に追加されたラベルが付けられます。
XYZ
三刺激値のそれぞれについて 1 つずつ、合計 3 グループの列挙データがあります。各グループには、DataBegin 行 (表 1 の第 14 行) より上に追加されたラベルが付けられます。
この記事では、CIE 三刺激値 XYZ に対する BSDF データのフォーマットについて説明しています。しかし、OpticStudio では現在、CIE 三刺激値による BSDF データを使用する散乱モデルをサポートしていません。光学系に CIE 三刺激値 XYZ による BSDF データを読み込んだ場合、Y グループの値のみが使用されます。
-
ScatterType 変数には、次の 2 つのオプションがあります : BRDF、BTDF
BRDF
.転送されるデータが BRDF 単位で表されます。座標系は、動径角 0°が正反射の角度に対応するように定義されます。
BTDF
転送されるデータが BTDF 単位で表されます。座標系は、動径角 0°が直接透過の角度に対応するように定義されます。
5-12. 値の総数 (行 5、7、9、11):
値の総数を正の整数 (小数点は使用できません) で表します。
サンプル回転角または入射角の数に上限はありません。
方位角の上限は、Symmetry 変数で決まります (PlaneSymmetrical の場合は 180°、Asymmetrical、Asymmetrical4D の場合は 360°)。
動径角の全体の上限は 180°です。
列挙値 (行 6、8、10、12):
すべての列挙値は正です。
列挙値の数は、上の行に記述した値の総数に一致している必要があります。
列挙値は等間隔である必要はありません (次のセクションのフォーマット例を参照してください。ScatterRadial と ScatterAzimuth の列挙値は等間隔ではありません)。ただし、各データ行は、その行の最後の列挙値の末尾で終わる必要があります (つまり、データ行の末尾に余分な空白文字やタブ文字があってはなりません)。
16. データの大きなグループを DataBegin と DataEnd ステートメントで挟みます。特定の AngleOfIncidence に対する散乱データの各ブロックの前に Total Integrated Scatter の値があります。
この値は、「TIS」で始まる独立した行に記述されています。値は割合を表し、.500 は光の 50% が散乱し、残りは吸収または BRDF の場合は透過することを意味します。
TIS の値に続いて、散乱データが列挙されます。列は ScatterAzimuth の各行内の ScatterRadial の値を表します。行は、グループごとに整理されています。はじめに、各 AngleOfIncidence に対する ScatterAzimuth の値を転送します。続く行では、さまざまな ScatterAzimuth の行を含む、各 AngleOfIncidence のデータを転送します。さらに行を追加することで、さまざまな ScatterAzimuth グループを含む、各 SampleRotation のデータを転送します。
散乱データの列挙フォーマットは、変数 SpectralContent で選択した設定に応じて変化します。SpectralContent 変数を Monochrome に設定した場合、フォーマットは次のセクションの図 3 および 4 のようになります。SpectralContent 変数を XYZ に設定した場合、DataBegin と DataEnd ステートメントの行が 2 つ追加され、データ グループへのラベルとなる各 DataBegin 行の上には、そのグループに対応する三刺激値を示すラベル行が追加されます。次のセクションの図 5 を参照してください。
BSDF データ交換フォーマットの例
Monochrome
#Data Generated by Radiant Zemax' 'Imaging Sphere'
#6/1/2007 11:30:46 AM
#Name: Ron
#Model #: BTDF of matte sample
Source Measured
Symmetry PlaneSymmetrical
SpectralContent Monochrome
ScatterType BRDF
SampleRotation 1
0
AngleOfIncidence 6
0 10 20 30 45 60
ScatterAzimuth 5
0 30 60 90 180
ScatterRadial 15
0 1 2 3.5 5 6.7 8 13.1 ...
Monochrome
DataBegin
TIS 0.72
3.689E+00 3.575E+00 2.907E+00 ...
3.689E+00 3.585E+00 3.108E+00 ...
3.689E+00 3.585E+00 3.044E+00 ...
3.689E+00 3.511E+00 3.143E+00 ...
3.689E+00 3.313E+00 2.905E+00 ...
TIS 0.70
3.605E+00 3.491E+00 2.778E+00 ...
3.605E+00 3.444E+00 2.968E+00 ...
3.605E+00 3.444E+00 2.874E+00 ...
3.605E+00 3.316E+00 2.955E+00 ...
3.605E+00 3.206E+00 2.825E+00 ...
TIS 0.61
3.154E+00 3.059E+00 2.455E+00 ...
3.154E+00 2.924E+00 2.472E+00 ...
3.154E+00 2.924E+00 2.374E+00 ...
3.154E+00 2.768E+00 2.454E+00 ...
3.154E+00 2.892E+00 2.615E+00 ...
TIS 0.49
2.508E+00 2.453E+00 2.040E+00 ...
2.508E+00 2.341E+00 2.014E+00 ...
2.508E+00 2.341E+00 1.925E+00 ...
2.508E+00 2.203E+00 1.976E+00 ...
2.508E+00 2.311E+00 2.121E+00 ...
TIS 0.27
1.391E+00 1.362E+00 1.186E+00 ...
1.391E+00 1.351E+00 1.228E+00 ...
1.391E+00 1.351E+00 1.203E+00 ...
1.391E+00 1.324E+00 1.233E+00 ...
1.391E+00 1.323E+00 1.255E+00 ...
TIS 0.10
5.262E-01 5.333E-01 5.332E-01 ...
5.262E-01 5.295E-01 5.196E-01 ...
5.262E-01 5.295E-01 4.988E-01 ...
5.262E-01 5.122E-01 4.955E-01 ...
5.262E-01 5.070E-01 4.962E-01 ...
DataEnd
図 3. 測光量 (Monochrome) データ フォーマットの例です。連続するデータ グループは 1 つだけで、DataBegin と DataEnd ステートメントは 1 つずつです。このデータには、1 つのサンプル回転角に対するデータのみが含まれます。回転が複数通り存在する場合、データ グループの最後のデータの後、ただし DataEnd ステートメントの前に行が追加されます。
#Data Generated by Radiant Imaging's 'Imaging Sphere'
#6/1/2007 11:30:46 AM
#Name: Ron
#Model #: BTDF of matte sample
Source Measured
Symmetry PlaneSymmetrical
SpectralContent Monochrome
ScatterType BRDF
SampleRotation 1
0
AngleOfIncidence 6
0 10 20 30 45 60
ScatterAzimuth 5
0 30 60 90 180
ScatterRadial 15
0 1 2 3.5 5 6.7 8 13.1 ...
Monochrome
DataBegin Rad 1 Rad 2 ...
TIS 0.72
3.689E+00 Az 0 3.575E+00 2.907E+00 ...
3.689E+00 Az 30 3.585E+00 3.108E+00 ...
3.689E+00 . 3.585E+00 3.044E+00 ... Inc 0
3.689E+00 . 3.511E+00 3.143E+00 ...
3.689E+00 Az 180 3.313E+00 2.905E+00 ...
TIS 0.70
3.605E+00 3.491E+00 2.778E+00 ...
3.605E+00 3.444E+00 2.968E+00 ...
3.605E+00 3.444E+00 2.874E+00 ... Inc 10
3.605E+00 3.316E+00 2.955E+00 ...
3.605E+00 3.206E+00 2.825E+00 ...
TIS 0.61
3.154E+00 3.059E+00 2.455E+00 ...
3.154E+00 2.924E+00 2.472E+00 ...
3.154E+00 2.924E+00 2.374E+00 ... .
3.154E+00 2.768E+00 2.454E+00 ...
3.154E+00 2.892E+00 2.615E+00 ...
TIS 0.49
2.508E+00 2.453E+00 2.040E+00 ...
2.508E+00 2.341E+00 2.014E+00 ...
2.508E+00 2.341E+00 1.925E+00 ... .
2.508E+00 2.203E+00 1.976E+00 ...
2.508E+00 2.311E+00 2.121E+00 ...
TIS 0.27
1.391E+00 1.362E+00 1.186E+00 ...
1.391E+00 1.351E+00 1.228E+00 ...
1.391E+00 1.351E+00 1.203E+00 ... .
1.391E+00 1.324E+00 1.233E+00 ...
1.391E+00 1.323E+00 1.255E+00 ...
TIS 0.10
5.262E-01 5.333E-01 5.332E-01 ...
5.262E-01 5.295E-01 5.196E-01 ...
5.262E-01 5.295E-01 4.988E-01 ... Inc 60
5.262E-01 5.122E-01 4.955E-01 ...
5.262E-01 5.070E-01 4.962E-01 ...
DataEnd
図 4. 説明入りの測光量 (Monochrome) データ フォーマットの例です。連続するデータ グループは 1 つだけで、DataBegin と DataEnd ステートメントは 1 つずつです。図には、入射角のグループ、方位角のグループ、動径角の列の位置が示されています (全 15 列のうち 3 つを示しています)。このデータには、1 つのサンプル回転角に対するデータのみが含まれます。回転が複数通り存在する場合、データ グループの最後のデータの後、ただし DataEnd ステートメントの前に行が追加されます。
#Data Generated by Radiant Imaging's 'Imaging Sphere'
#6/1/2007 11:30:46 AM
#Name: Ron
#Model #: BTDF of matte sample
Source Measured
Symmetry PlaneSymmetrical
SpectralContent XYZ
ScatterType BRDF
SampleRotation 1
0
AngleOfIncidence 6
0 10 20 30 45 60
ScatterAzimuth 5
0 30 60 90 180
ScatterRadial 15
0 1 2 3.5 5 6.7 8 13.1 ...
TristimulusX
DataBegin
TIS 0.72
3.689E+00 3.575E+00 2.907E+00 ...
3.689E+00 3.585E+00 3.108E+00 ...
3.689E+00 3.585E+00 3.044E+00 ...
3.689E+00 3.511E+00 3.143E+00 ...
3.689E+00 3.313E+00 2.905E+00 ...
TIS 0.70
3.605E+00 3.491E+00 2.778E+00 ...
3.605E+00 3.444E+00 2.968E+00 ...
3.605E+00 3.444E+00 2.874E+00 ...
3.605E+00 3.316E+00 2.955E+00 ...
3.605E+00 3.206E+00 2.825E+00 ...
TIS 0.61
3.154E+00 3.059E+00 2.455E+00 ...
3.154E+00 2.924E+00 2.472E+00 ...
3.154E+00 2.924E+00 2.374E+00 ...
3.154E+00 2.768E+00 2.454E+00 ...
3.154E+00 2.892E+00 2.615E+00 ...
TIS 0.49
2.508E+00 2.453E+00 2.040E+00 ...
2.508E+00 2.341E+00 2.014E+00 ...
2.508E+00 2.341E+00 1.925E+00 ...
2.508E+00 2.203E+00 1.976E+00 ...
2.508E+00 2.311E+00 2.121E+00 ...
TIS 0.27
1.391E+00 1.362E+00 1.186E+00 ...
1.391E+00 1.351E+00 1.228E+00 ...
1.391E+00 1.351E+00 1.203E+00 ...
1.391E+00 1.324E+00 1.233E+00 ...
1.391E+00 1.323E+00 1.255E+00 ...
TIS 0.10
5.262E-01 5.333E-01 5.332E-01 ...
5.262E-01 5.295E-01 5.196E-01 ...
5.262E-01 5.295E-01 4.988E-01 ...
5.262E-01 5.122E-01 4.955E-01 ...
5.262E-01 5.070E-01 4.962E-01 ...
DataEnd
TristimulusY
DataBegin
TIS 0.72
3.689E+00 3.575E+00 2.907E+00 ...
3.689E+00 3.585E+00 3.108E+00 ...
3.689E+00 3.585E+00 3.044E+00 ...
3.689E+00 3.511E+00 3.143E+00 ...
図 5. 色 (XYZ) データ フォーマットの例です。独立した三刺激値のそれぞれについて、独立した DataBegin と DataEnd ステートメントがあることを確認してください。回転が複数通り存在する場合、各三刺激値グループの最後のデータ行の後、ただし DataEnd ステートメントの前に行が追加されます。
KA-01372
コメント
サインインしてコメントを残してください。