イルミネーション

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