mental ray は、ライト マッピングをサポートしています。これは(マテリアルにライトマップ シェーダを含む)特定のオブジェクト上で実行される 2 部制の処理で、イルミネーションまたはその他の情報を計算し、結果をテクスチャまたはその他の場所に書き込みます。第一段階では、オブジェクトのすべての頂点についてライトマップ シェーダを頂点モード で呼び出し、戻された情報を収集します。第二段階では、ライトマップ シェーダを出力モードで呼び出し、収集された情報を使用して、オブジェクトのすべての三角形をループすることによってテクスチャまたはその他の出力データをペイントします。
ベース シェーダライブラリ内のライトマップ シェーダは、直接イルミネーションおよび間接イルミネーションを収集し、そこから書き込み可能なテクスチャマップを作成します。mental ray は 1 つのライトマップ シェーダしか認識しませんが、ベースライトマップシェーダは出力の段階を処理するメイン シェーダと、メイン シェーダによって呼び出され頂点の段階を処理する個別のシェーダに分割されます。このため、1 つの段階だけを、ユーザが作成した別のシェーダに簡単に置き換えることができます。
ライトマップ イルミネーション サンプリング シェーダは、サーフェス ライトの流入密度をサンプリングする単純なカラー シェーダです。直接イルミネーションと、オプションで間接イルミネーションを収集します。マテリアル内で使用するのではなく、mib_lightmap_write シェーダの input パラメータに割り当てる必要があります。
color "mib_lightmap_sample" ( boolean "indirect", integer "flip", array light "lights" )
ライトマップ生成シェーダは、メイン ライトマップ シェーダです。ジオメトリック情報と三角形の頂点のテクスチャ座標を収集し、個々の三角形のテクスチャの三角形の領域に書き込みます。三角形に覆われるテクスチャの各ピクセルについてサンプリング関数が呼び出され、結果がシェーダに書き込まれます。ライトマップ シェーダは lightmap キーワードを使用してマテリアルにアタッチされます。
struct { vector "point", vector "normal", vector "tex" } "mib_lightmap_write" ( color texture "texture", vector texture "coord", color texture "input", integer "fg_mode" )
-1 | off |
0 | (テッセレーションされたジオメトリの)各頂点で FG ポイントを強制します |
1 | 各テクスチャ ピクセル(テクセル)で FG ポイントを強制します。 |
2 | ... 1 テクセル間隔 |
3 | ... 2 テクセル間隔(デフォルト) |
n (n > 3) | ... n-1 テクセル間隔 |
Copyright © 1986-2009 by mental images GmbH