vector|vector4 texture(string map, ...)
シェーディングコンテキストのグローバルのSとTの座標のテクスチャをサンプリングします。これらのシグネチャは、シェーディングコンテキストでのみ利用可能です。
vector|vector4 texture(string map, float ss, float tt, ...)
指定したSとTの座標におけるSとTの微分に基づいたフィルタ幅を使って、そのSとTの座標のテクスチャをサンプリングします。 この関数がシェーディングコンテキスト外で使われると、フィルター幅は0になります。
vector|vector4 texture(string map, float s0, float t0, float s1, float t1, float s2, float t2, float s3, float t3, ...)
(s0, t0), (s1, t1), (s2, t2), (s3, t3)のコーナーで定義された明示的なサンプリング四辺形を受け取ります。
Returns
テクスチャからサンプリングされたカラー値。
戻りタイプがvector4
の関数をコールすると、その関数は4番目のコンポーネントにテクスチャアルファを格納します。
画像フィルタリングオプション
フィルタパラメータを指定する例:
colormap(map, u, v, "smode", "decal", "tmode", "repeat", "border", {.1,1,1}); colormap(map, u, v, "mode", "clamp", "width", 1.3); colormap(map, u, v, "filter", "gauss", "width", 1.3, "mode", "repeat");
テクスチャがdeep.rat
ファイルの場合、channel
キーワード引数を使用することで、そのファイル内のチャンネルを指定することができます:
string channelname = "N"; cf = colormap(map, u, v, "channel", channelname);
"wrap
",
string
="repeat"
repeat
または periodic
画像マップが0から1の範囲外を繰り返します。 基本的には、テクスチャ座標の整数コンポーネントは無視されます。 これがデフォルトです。
clamp
または edge
または streak
テクスチャ座標が0から1の範囲に制限されます。 これによって、その範囲外では、その画像に最も近いエッジにおけるカラーが評価されます(境界のピクセルが範囲外に引き伸ばされます)。
black
または decal
または color
0から1の範囲外の座標では(画像内のカラーではなく)境界カラーが評価されます。 境界カラーはデフォルトでブラック(つまり0)です。
"uwrap
",
string
(通称swrap
)
u座標が0から1の範囲外の時の挙動を指定します。
この値はwrap
と同じです。
"vwrap
",
string
(通称twrap
)
v座標が0から1の範囲外の時の挙動を指定します。
この値はwrap
と同じです。
"border
",
float|vector|vector4
=0
Black/Decal/Colorのラップが使用されている時の境界カラーを指定します。
"channel
",
複数カラー平面(例えば、diffuse_indirect
やN
)を持つテクスチャのカラーチャンネルを指定します。
ptex画像に関しては、ここには1番目のチャンネルのインデックス(例えば、0
や4
)を指定します。
"blur
",
float
xとyの方向にブラーします。ブラーには、画像サイズの比率を指定します。
つまり、0.1のブラーは画像幅の10%をブラーします。
方向別に異なるブラー量が必要であれば、xblur
とyblur
を使用します。
"xblur
",
(通称ublur
, sblur
)
x画像方向のブラー量。
"yblur
",
(通称vblur
, tblur
)
y画像方向のブラー量。
"pixelblur
",
float
浮動小数点の数のピクセルだけテクスチャをブラーします。
Cf = texture("map.rat", ss, tt, "pixelblur", 2.0);
"xpixelblur
",
float
X方向に浮動小数点の数のピクセルだけテクスチャをブラーします。
"ypixelblur
",
float
Y方向に浮動小数点の数のピクセルだけテクスチャをブラーします。
"filter
",
string
="box"
評価に使用するアンチエイリアスフィルタのタイプを指定します。 以下の引数のどれかを文字列で指定することができます:
point
ポイントサンプリング(つまり、フィルタリングなし)
box
ボックスフィルタ(デフォルト)
gauss
ガウスフィルタ
bartlett
Bartlett/Triangularフィルタ
sinc
Sinc sharpeningフィルタ
hanning
Hanningフィルタ
blackman
Blackmanフィルタ
catrom
Catmull-Romフィルタ
"xfilter
",
string
(通称ufilter
, sfilter
)
X方向のフィルタを指定します。このフィルタはfilter
と同じです。
"yfilter
",
string
(通称vfilter
, tfilter
)
Y方向のフィルタを指定します。このフィルタはfilter
と同じです。
"filtermode
",
string
指定したフィルタとは別に、VEXはもっと単純なフィルタリングも対応しています。
filtermode
には以下のどれかを設定することができます:
filter
filter
キーワード引数で指定されたフィルタリングを使用します。
bilinear
単純なバイリニアフィルタリングを使用します。これが最も高速なフィルタリングモードですが、フィルタリングの品質が最も低いです。
biquadratic
単純な2次フィルタリングを使用します(階数3フィルタリング)。
bicubic
単純な3次フィルタリングを使用します。
filtermode
をbilinear
, biquadratic
, bicubic
に設定すると、
いくつかの引数(例えば、filter
やwidth
)が無視され、代わりに固定された補間フィルタが使用されます。
他の引数(特に、lerp
やblur
のキーワード)は有効です。
"width
",
float
=1.0
XとYの両方向のフィルタ幅。
"xwidth
",
float
(通称uwidth
, swidth
)
X方向のフィルタ幅。
"ywidth
",
float
(通称vwidth
, twidth
)
Y方向のフィルタ幅。
"zwidth
",
float
Z方向のフィルタ幅(シャドウマップ用)。 これは、他の幅の引数とは違って、ワールド空間の単位を指定します。
"extrapolate
",
int
アンチエイリアス情報を計算する時に、微分による外挿法を使用するかどうか指定します。微分による外挿法がデフォルトで有効になっています。引数は0か1を指定します。
"lerp
",
int
RATファイルを異なるMIPレベル間で補間するかどうか指定します。デフォルトでは無効になっています。補間を有効にすれば、.ratファイルの異なるMIPレベルにアクセスした時の不連続性を 取り除くのに役に立ちます。しかし、テクスチャ評価の結果は、少しだけソフトになり(つまり、ぼやけます)、時間がかかります。
この引数には3つの値を指定することができます。
0
MIPマップ補間を無効にします(最高速)。
1
MIPマップ補間を近似します(高速)。
2
最高品質のMIPマップ補間(遅いですが最高品質です)。
"depthinterp
",
string
ディープシャドウマップの深度補間モードを指定して、マップが2つのz-record間でサンプリングされる時に返す不透明度の値を制御します。
引数は、文字列でなければなりません。
discrete
(デフォルト)サンプルポイントの前の最初のz-recordを返します。
linear
サンプルポイント前と後のz-recordの不透明度を線形的に補間します。
2つのモードの違いは、ディープシャドウマップを参照してください。
"beerlambert
",
int
ボリュームディープシャドウマップを評価する時、これは、不透明度に対してBeer-Lambert補間を有効にします。 Beer-Lambertは正確ですが、処理が重い補間形式です。
引数には、0または1を指定します。
"srccolorspace
",
string
テクスチャを格納するカラー空間を指定します。 テクスチャの値にアクセスすると、それらの値は、必要に応じてレンダリングのために、この空間から線形空間に変換されます。
auto
(デフォルト) ファイルに基づいてソースのカラー空間を決めます。 現在のところ、これは8ビットテクスチャに対してはsRGBカラー空間とみなし、他のテクスチャすべてに対してはリニアカラー空間と見なします。
linear
リニアカラー空間に変換します。これは、現在のところ8ビットテクスチャにのみ影響を与えます。なぜなら、他のテクスチャすべてが既にリニアカラー空間とみなされているからです。 このオプションを使えば、バンプマップやディスプレイスメントマップで使用するテクスチャを強制的に線形補間します。
"face
",
Ptexテクスチャマップを使用する時、face
引数を使用してPtextureルックアップでフェースを指定します。
"ptexorient
",
int
Ptexテクスチャを使用する時、ポリゴンの暗黙のテクスチャ座標が(face
と組み合わせて)テクスチャルックアップの補間に使用されます。
しかし、別のソフトウェアではポリゴンの周回方向と向きの定義が異なることがあります。
このキーワードの引数は、Houdiniのポリゴンの向きの解釈を制御することができます。
ptexorient
には、ビットフィールドで構成された整数の引数が必要です。
例えば、6 (0×4|0×2)の値は、texture(map, s, t)
ではなく、texture(map, 1-t, s)
をコールすることと等価です。
デフォルトのptexorient
は0です。これは、http://ptex.usにあるサンプルで正しく動作します。
See also | |
file | |
map | |
shading |
|