イルミネーション
Lambert
Lambert イルミネーションを実行します。アンビエントと拡散 RGB カラー(アルファは無視されます)、ライト リストが必要です。
mib_illum_lambert
color "mib_illum_lambert" (
color "ambience",
color "ambient",
color "diffuse",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。アンビエント カラーと拡散カラーは同一のサブシェーダの結果(テクスチャ マッパーなど)から得ることができ、アンビエント ブライトネスを削減することによってイルミネーションのエフェクトが失われることを回避することができます。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
Phong
Phong イルミネーションを実行します。アンビエント、拡散、スペキュラ RGB カラー、スペキュラ指数、ライト リストを必要とします。
mib_illum_phong
color "mib_illum_phong" (
color "ambience",
color "ambient",
color "diffuse",
color "specular",
scalar "exponent",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。アンビエント カラーと拡散カラーは同一のサブシェーダの結果(テクスチャ マッパーなど)から得ることができ、アンビエント ブライトネスを削減することによってイルミネーションのエフェクトが失われることを回避することができます。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- specular
- スペキュラ ハイライトのカラーを指定します。
- exponent
- スペキュラ ハイライトの幅をコントロールします。この値が小さいほどサイズが増加します。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
Ward
Ward イルミネーションを実行します。アンビエント、拡散、光沢のある RGB カラー、2 つの光沢パラメータ、2 つの方向ベクトル、ライト リストを必要とします。
mib_illum_ward
color "mib_illum_ward" (
color "ambience",
color "ambient",
color "diffuse",
color "glossy",
scalar "shiny_u",
scalar "shiny_v",
vector "u",
vector "v",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。アンビエント カラーと拡散カラーは同一のサブシェーダの結果(テクスチャ マッパーなど)から得ることができ、アンビエント ブライトネスを削減することによってイルミネーションのエフェクトが失われることを回避することができます。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- glossy
- 個々の光に追加されます。Ward の光沢のある異方性反射モデルに基づいて計算された光沢のあるカラーです。
- shiny_u
shiny_v
- それぞれ、U 方向および V 方向における光沢のあるハイライトの幅をコントロールします。この値が小さいほどハイライトのサイズが増加します。
- u
v
- 異方性マテリアルにおけるブラシの方向です。相互に垂直であり、サーフェス法線に対しても垂直であり、単位長である必要があります。このようなベクトルの生成は、これらの受信パラメータを駆動することを目的とした mib_texture_rotate シェーダによって行われます。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
サーフェス導関数を持つ Ward
Ward イルミネーションを実行します。アンビエント、拡散、光沢のある RGB カラー、2 つの光沢パラメータ、ライト リストを必要とします。mib_illum_ward との相違点は、ブラシの方向をサーフェス導関数から取得するという点です。
mib_illum_ward_deriv
color "mib_illum_ward_deriv" (
color "ambience",
color "ambient",
color "diffuse",
color "glossy",
scalar "shiny_u",
scalar "shiny_v",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。アンビエント カラーと拡散カラーは同一のサブシェーダの結果(テクスチャ マッパーなど)から得ることができ、アンビエント ブライトネスを削減することによってイルミネーションのエフェクトが失われることを回避することができます。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- glossy
- 個々の光に追加されます。Ward の光沢のある異方性反射モデルに基づいて計算された光沢のあるカラーです。
- shiny_u
shiny_v
- それぞれ、U 方向および V 方向における光沢のあるハイライトの幅をコントロールします。u 方向はサーフェスの第一次導関数(状態から読み取ったもの)、v は垂直です。u および v はいずれもサーフェス法線に対して垂直な平面にあります。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
Cook-Torrance
Cook-Torrance イルミネーションを実行します。アンビエント、拡散、スペキュラ RGB カラー、粗さ、3 つの波長の屈折指数、ライト リストを必要とします。Cook-Torrance イルミネーションでは、スペキュラから外れたピークと、角度によるカラー シフトがあります。
mib_illum_cooktorr
color "mib_illum_cooktorr" (
color "ambience",
color "ambient",
color "diffuse",
color "specular",
scalar "roughness",
color "ior",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。アンビエント カラーと拡散カラーは同一のサブシェーダの結果(テクスチャ マッパーなど)から得ることができ、アンビエント ブライトネスを削減することによってイルミネーションのエフェクトが失われることを回避することができます。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- specular
- 反射カラーに乗算される係数です。
- roughness
- サーフェスの平均マイクロファセット斜面です。スペキュラ ハイライトの幅をコントロールします。
- ior
- 3 つの異なる波長(赤、緑、青)の屈折のインデックスです。金属の IOR はガラスの IOR よりも高いのが普通です。値は 1.0 以上でなければならず、1.0 よりも小さい値は 1.0 にクランプされます。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
Blinn
Cook-Torrance イルミネーションに似ていますが角度によるカラー シフトを行わない、Blinn イルミネーションを実行します。必要な屈折指数は 1 つだけです。
mib_illum_blinn
color "mib_illum_blinn" (
color "ambience",
color "ambient",
color "diffuse",
color "specular",
scalar "roughness",
scalar "ior",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。アンビエント カラーと拡散カラーは同一のサブシェーダの結果(テクスチャ マッパーなど)から得ることができ、アンビエント ブライトネスを削減することによってイルミネーションのエフェクトが失われることを回避することができます。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- specular
- スペキュラ ハイライトのカラーを指定します。
- roughness
- サーフェスの平均マイクロファセット斜面です。スペキュラ ハイライトの幅をコントロールします。
- ior
- マテリアルの屈折のインデックスです。金属の IOR はガラスの IOR よりも高いのが普通です。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
ヘア
ヘア ジオメトリ上で Phong に似たイルミネーションを実行します。ヘアは規則的な三角形をシェーディングするのではなく、プロシージャ フラットリボン ジオメトリをシェーディングするので、特化したシェーダが必要です。パラメータ接続には、ヘア ジオメトリ上のシェーディングまたはテクスチャ マッピングにおける相違点を処理できる、特別なシェーダを使用する必要があります。
mib_illum_hair
color "mib_illum_hair" (
color "ambience",
color "ambient",
color "diffuse",
color "specular",
scalar "exponent",
integer "mode",
array light "lights")
- ambience
- アンビエント カラーの乗数です。
- ambient
- 一定のカラー オフセットです。
- diffuse
- 入射レイの方向と光の方向との内積に基づいたウェイトと、光によって返されるカラーとの乗算の後に、各ライトの結果に追加されます。
- specular
- スペキュラ ハイライトのカラーを指定します。
- exponent
- スペキュラ ハイライトの幅をコントロールします。
- mode
- 使用するライトをコントロールします(ライト リスト参照)。
- lights
- ライト リストに使用するライトのインスタンスのリストです。
ライト リスト
上記のすべてのイルミネーション シェーダには、イルミネーションに使用されるライトのセットをコントロールする、mode パラメータと lights パラメータがあります。イルミネーションの実行には、lights パラメータで指定されたライトのインスタンスを使用するか、シェーディングの対象となるジオメトリ インスタンスのライト リストを使用します。シーン オブジェクトに割り当てられたライト リストを使用すると、ライトのリレーションが異なるオブジェクトであっても共通シェーダを共有できます。ライトは、mode パラメータで使用可能な以下の値に従って使用されます。
- 0
- lights パラメータを使用したイルミネーションで、ライトが指定されていない場合はインスタンス ライト リストを使用し、インスタンス ライト リストが指定されていない場合は、シーン内のすべてのライトを使用します。これがデフォルトです。
- 1
- 指定された lights を包括モードで使用するイルミネーションです(ライトのインスタンスのインスタンスのグループがグループ内のすべてのライトのインスタンスに基づいて評価されます)。
- 2
- 指定された lights を排他モードで使用するイルミネーションです(指定されたものを除くすべてのライトを使用します)。
- 4
- 指定された lights をすべて無視し、インスタンス ライト リストを使用します。インスタンス ライト リストが指定されていない場合は、シーン内のすべてのライトのインスタンスが使用されます。
Copyright © 1986-2009 by mental images GmbH