組み込み関数 (DirectX HLSL)

次の表に、HLSL に用意されている組み込み関数を示します。各関数には、簡単な説明に加えて、入力引数と戻り型に関する詳細情報が記載されているリファレンス ページへのリンクがあります。

名前 構文 説明
abs abs(x) 絶対値 (成分ごと)。
acos acos(x) x の各成分のアークコサインを返します。
all all(x) x のすべての成分が 0 以外の値であるかどうかをテストします。
any any(x) x のいずれかの成分が 0 以外の値であるかどうかをテストします。
asfloat asfloat(x) 入力のデータ型を浮動小数点型に変換します。
asin asin(x) x の各成分のアークサインを返します。
asint asint(x) 入力のデータ型を整数型に変換します。
asuint asuint(x) 入力のデータ型を符号なし整数型に変換します。
atan atan(x) x のアークタンジェントを返します。
atan2 atan2(y, x) 2 つの値 (x,y) のアークタンジェントを返します。
ceil ceil(x) x 以上の最小の整数を返します。
clamp clamp(x, min, max) x を [min, max] の範囲にクランプします。
clip clip(x) x のいずれかの成分が 0 未満の場合に、現在のピクセルを破棄します。
cos cos(x) x のコサインを返します。
cosh cosh(x) x のハイパーボリック コサインを返します。
cross cross(x, y) 2 つの 3D ベクトルの外積を返します。
D3DCOLORtoUBYTE4 D3DCOLORtoUBYTE4(x) UBYTE4 がサポートされていない一部のハードウェアに対応するために、4D ベクトル x の各成分の入れ替えとスケーリングを行います。
ddx ddx(x) スクリーン空間の x 座標に対する、x の偏微分を返します。
ddy ddy(x) スクリーン空間の y 座標に対する、x の偏微分を返します。
degrees degrees(x) x をラジアン単位から度単位に変換します。
determinant determinant(m) 正方行列 m の行列式を返します。
distance distance(x, y) 2 点間の距離を返します。
dot dot(x, y) 2 つのベクトルの内積を返します。
exp exp(x) e を底とする指数を返します。
exp2 exp2(x) 2 を底とする指数 (成分ごと)。
faceforward faceforward(n, i, ng) -n * sign(?(i, ng)) を返します。
floor floor(x) x 以下の最大の整数を返します。
fmod fmod(x, y) x/y の浮動小数点の剰余を返します。
frac frac(x) x の小数部を返します。
frexp frexp(x, exp) x の仮数と指数を返します。
fwidth fwidth(x) abs(ddx(x)) + abs(ddy(x)) を返します。
GetRenderTargetSampleCount GetRenderTargetSampleCount() レンダー ターゲットのサンプルの数を返します。
GetRenderTargetSamplePosition GetRenderTargetSamplePosition(x) 特定のサンプル インデックスのサンプル位置 (x,y) を返します。
isfinite isfinite(x) x が有限の場合は true を返し、それ以外の場合は false を返します。
isinf isinf(x) x が +INF または -INF の場合は true を返し、それ以外の場合は false を返します。
isnan isnan(x) x が NAN または QNAN の場合は true を返し、それ以外の場合は false を返します。
ldexp ldexp(x, exp) x * 2exp を返します。
length length(v) ベクトル v の長さを返します。
lerp lerp(x, y, s) x + s(y - x) を返します。
lit lit(n ? l, n ? h, m) ライティング ベクトル (アンビエント、ディフューズ、スペキュラー、1) を返します。
log log(x) x の e を底とする対数を返します。
log10 log10(x) x の 10 を底とする対数を返します。
log2 log2(x) x の 2 を底とする対数を返します。
max max(x, y) x と y のうちの大きい方の値を選択します。
min min(x, y) x と y のうちの小さい方の値を選択します。
modf modf(x, out ip) 値 x を小数部と整数部に分割します。
mul mul(x, y) x と y の行列乗算を実行します。
noise noise(x) パーリン ノイズ アルゴリズムを使用してランダムな値を生成します。
normalize normalize(x) 正規化されたベクトルを返します。
pow pow(x, y) xy を返します。
radians radians(x) x を度単位からラジアン単位に変換します。
reflect reflect(i, n) 反射ベクトルを返します。
refract refract(i, n, R) 屈折ベクトルを返します。
round round(x) x を最も近い整数に丸めます。
rsqrt rsqrt(x) 1 / sqrt(x) を返します。
saturate saturate(x) x を [0, 1] の範囲にクランプします。
sign sign(x) x の符号を計算します。
sin sin(x) x のサインを返します。
sincos sincos(x, out s, out c) x のサインおよびコサインを返します。
sinh sinh(x) x のハイパーボリック サインを返します。
smoothstep smoothstep(min, max, x) 0 と 1 の間のスムーズなエルミート補間を返します。
sqrt sqrt(x) 平方根 (成分ごと)。
step step(a, x) (x >= a) ? 1 : 0 を返します。
tan tan(x) x のタンジェントを返します。
tanh tanh(x) x のハイパーボリック タンジェントを返します。
tex1D tex1D(s, t) 1D テクスチャー ルックアップ。
tex1Dbias tex1Dbias(s, t) 1D バイアス テクスチャー ルックアップ。
tex1Dgrad tex1Dgrad(s, t, ddx, ddy) 1D グラデーション テクスチャー ルックアップ。
tex1Dlod tex1Dlod(s, t) 1D LOD テクスチャー ルックアップ。
tex1Dproj tex1Dproj(s, t) 1D 射影除算テクスチャー ルックアップ。
tex2D tex2D(s, t) 2D テクスチャー ルックアップ。
tex2Dbias tex2Dbias(s, t) 2D バイアス テクスチャー ルックアップ。
tex2Dgrad tex2Dgrad(s, t, ddx, ddy) 2D グラデーション テクスチャー ルックアップ。
tex2Dlod tex2Dlod(s, t) 2D LOD テクスチャー ルックアップ。
tex2Dproj tex2Dproj(s, t) 2D 射影除算テクスチャー ルックアップ。
tex3D tex3D(s, t) 3D テクスチャー ルックアップ。
tex3Dbias tex3Dbias(s, t) 3D バイアス テクスチャー ルックアップ。
tex3Dgrad tex3Dgrad(s, t, ddx, ddy) 3D グラデーション テクスチャー ルックアップ。
tex3Dlod tex3Dlod(s, t) 3D LOD テクスチャー ルックアップ。
tex3Dproj tex3Dproj(s, t) 3D 射影除算テクスチャー ルックアップ。
texCUBE texCUBE(s, t) キューブ テクスチャー ルックアップ。
texCUBEbias texCUBEbias(s, t) キューブ バイアス テクスチャー ルックアップ。
texCUBEgrad texCUBEgrad(s, t, ddx, ddy) キューブ グラデーション テクスチャー ルックアップ。
texCUBElod tex3Dlod(s, t) キューブ LOD テクスチャー ルックアップ。
texCUBEproj texCUBEproj(s, t) キューブ射影除算テクスチャー ルックアップ。
transpose transpose(m) 行列 m の転置行列を返します。
trunc trunc(x) 浮動小数点値の端数を切り捨てて整数値に変換します。

成分とテンプレートの型

HLSL 組み込み関数宣言は、入力パラメーター引数と戻り値に成分型とテンプレート型を使用します。使用可能な型を次の表に示します。

テンプレート型 説明 サポートされているデータ型
matrix 宣言に応じて最大 16 成分 HLSL の基本的な型
オブジェクト サンプラー オブジェクト sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
スカラー 1 つの成分 HLSL の基本的な型
vector 最小 1 つ、最大 4 つの成分 (両方の値を含む) HLSL の基本的な型

関連項目

HLSL のリファレンス