テクスチャ

これらのシェーダは、これまでに説明したテクスチャ空間マッピング機能のいずれかを使用して coord テクスチャ頂点を作成し、この頂点のカラーを作成します。2D マッピングを作成するシェーダは、テクスチャ頂点の x 成分および y 成分のみを使用します。

これらのシェーダのほとんどはカラーを返します。カラーは他のシェーダのスカラー パラメータに割り当てることができるので、マップ スカラーに基づいてカラースプレッドからカラーを選択するブレンドシェーダをこれらのシェーダを組み合わせて使用することができます。この場合は、テクスチャシェーダの減衰パラメータおよびスムージングパラメータと相互作用します。

イメージ ルックアップ

ハーフ オープンの間隔 [0, 1)にあるテクスチャイメージをルック アップします。この間隔の外部にあるポイントは R=G=B=A=0 にマッピングされます。

mib_texture_lookup
color "mib_texture_lookup" (
    color texture   "tex",
    vector          "coord")
tex
ルック アップするテクスチャ イメージです。
coord
ルック アップする座標です。

これは基本的にシェーダ インタフェース機能の mi_lookup_color_texture ファミリに対する前工程です。

mib_texture_lookup2
color "mib_texture_lookup2" (
    color texture   "tex",
    scalar          "factor")

mib_texture_lookup の代替です。接続されたパラメータとして取得せずに、状態内のテクスチャ座標の最初のセットを使用します。

tex
ルック アップするテクスチャ イメージです。
factor
テクスチャの反復係数です。

フィルタリングによるイメージ ルックアップ

楕円フィルタリングを使用してテクスチャ イメージをルックアップします。

mib_texture_filter_lookup
color "mib_texture_filter_lookup" (
    color texture   "tex",
    vector          "coord",
    scalar          "eccmax",
    scalar          "maxminor",
    scalar          "disc_r",
    boolean         "bilinear",
    integer         "space",
    shader          "remap")
tex
ルック アップするテクスチャ イメージです。これはテクスチャ シェーダでなく、必ずテクスチャ イメージでなくてはなりません。テクスチャ シェーダを指定すると、フィルタリングせずにテクスチャがルック アップされます。
coord
中央のテクスチャ サンプリング位置です。
eccmax
楕円の使用可能な最大偏心です。
maxminor
楕円の副半径の最大テクスチャ ピクセル数です。
disc_r
画面空間からテクスチャ空間への変換の計算に使用されます。  disc_r がゼロまたは未指定の場合は、既定の 0.3 が使用されます。カーブの多いサーフェスを使用したシーンでエイリアシング アーティファクトが発生する場合は、 (0.0...0.3] の範囲内の値を選択するとよいでしょう。
bilinear
true に設定した場合は、テクスチャ サンプルのバイリニア補間が有効になります。拡大された領域にブラーを追加して濃淡のむらのあるアーティファクトを回避します。
space
範囲が [0...63] 内のテクスチャ空間インデックスです。
remap
追加のテクスチャ座標の再マッピング用に呼び出されるシェーダです。

シェーダは指定された space パラメータを使用して mi_texture_filter_project を呼び出すことにより、ラスタ空間およびテクスチャ空間の 3 つの対応するポイントを取得します。これらの 3 つのテクスチャ座標は、指定された remap シェーダを呼び出すことによって再マッピングされ、再マッピングに使用する実際のテクスチャ座標は mi_call_shader_x の 4 番目の引数として渡されます(呼び出されるシェーダは mi_call_shader_x の 4 番目の引数を参照するように設計されている必要があります)。再マッピング シェーダは、シェーダ パラメータ内の指定されたテクスチャ座標ベクトルの代わりにこれを使用する必要があります。

フィルタリングによるテクスチャ ルックアップによって必要とされる投影変換行列は、3 つのラスタ空間座標および再マッピングされたテクスチャ空間座標を使用して mi_texture_filter_transform シェーダ インタフェース関数を呼び出すことによって計算されます。行列内の変換コンポーネントは coord に設定されます。投影変換は常に現在のラスタ位置について計算されますが、coord を使用してテクスチャ空間内の楕円を変換することも可能です。バンプマッピングで使用すると便利です。

これは基本的にシェーダインタフェース機能の mi_lookup_filter_color_texture ファミリに対する前工程です。楕円フィルタパラメータ bilinearmib_texture_filter_lookup では false に設定され、circle_radius では既定値が使用されます。投影行列を正しく計算できない場合や、テクスチャがイメージではなくシェーダである場合や、反射レベルがゼロでない場合は、フィルタリングされていないテクスチャルックアップが使用されます。

チェッカーボード

単位立方体を 8 個の副立方体に分割し、それぞれを個別の RGBA カラーにします。左、下、正面のパーツの幅はプログラム可能なため、このシェーダを使用してストライプや 2D または 3D のチェッカーボードを生成することができます。この機能は、シェーダボール シーンのプレビューにも使用できます。

mib_texture_checkerboard
color "mib_texture_checkerboard" (
    vector          "coord",
    scalar          "xsize",
    scalar          "ysize",
    scalar          "zsize",
    color           "color000",
    color           "color001",
    color           "color010",
    color           "color011",
    color           "color100",
    color           "color101",
    color           "color110",
    color           "color111")
coord
テクスチャリングする座標です。
*size
立方体の各方向の左(x)半分、下(y)半分、正面(z)半分のフラクションを、 [0, 1)の範囲で指定します。
color***
副立方体のカラーを指定します。3 つの桁は X、Y、Z の各座標を表し、000 は正面左下、100 は正面右下、111 は背面右上です。

ポルカ ドット

単位正方形に直径をプログラム可能な円形を描画し、単位立方体に直径をプログラム可能な球を描画します。フォアグアラウンド カラーおよびバックグラウン ドカラーはプログラム可能です。

mib_texture_polkadot
color "mib_texture_polkadot" (
    vector          "coord",
    scalar          "radius",
    color           "fgcolor",
    color           "bgcolor")
mib_texture_polkasphere
color "mib_texture_polkasphere" (
    vector          "coord",
    scalar          "radius",
    color           "fgcolor",
    color           "bgcolor")
coord
テクスチャリングする座標です。
radius
単位正方形または単位立方体の円形または球の半径です。
fgcolor
円形または球のフォアグラウンド カラーです。
bgcolor
円形または球のバックグラウンド カラーです。

乱気流

基本の立方体の中に動きの激しいスカラー型パターンを生成します。1 つ、2 つ、または 3 つのテクスチャ ベクトル要素すべてを極座標上で計算して、球面マッピングをおこないます。

mib_texture_turbulence
scalar "mib_texture_turbulence" (
    vector          "coord",
    scalar          "spacing",
    scalar          "strength",
    scalar          "power",
    integer         "iteration",
    integer         "polar_dim")
coord
テクスチャリングする座標です。
spacing
単位立方体のノイズの密度です。0 の場合は、既定の 1 が使用されます。
strength
ディストーションの強度を表すウェイトです。0 の場合は、既定の 1 が使用されます。
power
乱気流の度合いを指定します。0 の場合は、既定の 1 が使用されます。
iteration
合成された乱気流のパスの数を設定します。それぞれのパスが、power パラメータによって指定された乱気流の減少量に影響します。0 の場合は、既定の 2 が使用されます。最大値は 8 です。
polar_dim
合成されたノイズ値を計算する前に極座標に変換すべき、テクスチャ ベクトル成分を数値で指定します。0 の場合は異方性ノイズが作成され、1 の場合はラインが、2 の場合は円柱が作成されます。

U、V、W の方向に、それぞれがプログラム可能な振幅を持つコサイン波を生成します(周波数およびオフセットはテクスチャを再マッピングするベース シェーダを使って制御できます)。結果はグレースケール カラー(R=G=B=A)であり、カラーマップ ベース シェーダを使用して再マッピングできます。範囲が [o-s ... o+s] になるのは、振幅の合計を s、オフセットを o にした場合です。

mib_texture_wave
color "mib_texture_wave" (
    vector          "coord",
    scalar          "amplitude_x",
    scalar          "amplitude_y",
    scalar          "amplitude_z",
    scalar          "offset")
coord
テクスチャリングする座標です。
amplitude_*
生成された波を結果に追加する前に生成された波に乗算する係数です。既定は 0 です(影響なし)。
offset
ウェイト付けされた余弦の合計に定数値を加算します。結果を正の数にシフトする場合などに使用します。

Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.