組み込み関数 (DirectX HLSL)

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

名前 説明 最低限必要なシェーダー モデル
abs 絶対値 (成分ごと)。 11
acos x の各成分のアークコサインを返します。 11
all x のすべての成分が 0 以外の値であるかどうかをテストします。 11
AllMemoryBarrier すべてのメモリー アクセスが完了するまで、一定のグループとしたすべてのスレッドの実行をブロックします。 5
AllMemoryBarrierWithGroupSync すべてのメモリー アクセスが完了し、スレッドのグループに属するすべてのスレッドがこの呼び出しに到達するまで、そのグループのスレッド実行をすべてブロックします。 5
any x のいずれかの成分が 0 以外の値であるかどうかをテストします。 11
asdouble キャスト値を倍精度浮動小数点型として解釈し直します。 5
asfloat 64 ビット型のビット パターンを浮動小数点型として解釈し直します。 5
asfloat 入力のデータ型を浮動小数点型に変換します。 4
asin x の各成分のアークサインを返します。 11
asint 64 ビット型のビット パターンを 1 つの整数として解釈し直します。 5
asint 入力のデータ型を整数型に変換します。 4
asuint 64 ビット型のビット パターンを 1 つの uint として解釈し直します。 5
asuint 入力のデータ型を符号なし整数型に変換します。 4
atan x のアークタンジェントを返します。 11
atan2 2 つの値 (x,y) のアークタンジェントを返します。 11
ceil x 以上の最小の整数を返します。 11
clamp x を [min, max] の範囲にクランプします。 11
clip x のいずれかの成分が 0 未満の場合に、現在のピクセルを破棄します。 11
cos x のコサインを返します。 11
cosh x のハイパーボリック コサインを返します。 11
countbits 入力された整数のビット数 (成分ごと) を数えます。 5
cross 2 つの 3D ベクトルの外積を返します。 11
D3DCOLORtoUBYTE4 4D ベクトル xto の要素をスィズルおよびスケーリングして、一部のハードウェアで UBYTE4 がサポートされていない状況に対処します。 11
ddx スクリーン空間の x 座標に対する、x の偏微分を返します。 21
ddx_coarse スクリーン空間の x 座標に対する低精度の偏微分を計算します。 5
ddx_fine スクリーン空間の x 座標に対する高精度の偏微分を計算します。 5
ddy スクリーン空間の y 座標に対する、x の偏微分を返します。 21
ddy_coarse スクリーン空間の y 座標に対する低精度の偏微分を計算します。 5
ddy_fine スクリーン空間の y 座標に対する高精度の偏微分を計算します。 5
degrees x をラジアン単位から度単位に変換します。 11
determinant 正方行列 m の行列式を返します。 11
DeviceMemoryBarrier すべてのデバイス メモリー アクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
DeviceMemoryBarrierWithGroupSync すべてのデバイス メモリー アクセスが完了し、スレッドのグループに属するすべてのスレッドがこの呼び出しに到達するまで、そのグループのスレッド実行をすべてブロックします。 5
distance 2 点間の距離を返します。 11
dot 2 つのベクトルの内積を返します。 1
dst 距離ベクトルを計算します。 5
EvaluateAttributeAtCentroid ピクセル重心で評価します。 5
EvaluateAttributeAtSample インデックス付きのサンプル位置で評価します。 5
EvaluateAttributeSnapped オフセットを伴うピクセル重心で評価します。 5
exp e を底とする指数を返します。 11
exp2 2 を底とする指数 (成分ごと)。 11
f16tof32 uint の下位半分に格納した float16 を float に変換します。 5
f32tof16 入力値を float16 型に変換します。 5
faceforward -n * sign(?(i, ng)) を返します。 11
firstbithigh 要素ごとに最上位ビットから下位に向かって各ビットを調べ、設定されている最初のビットの位置を取得します。 5
firstbitlow 要素ごとに最下位ビットから上位に向かって各ビットを調べ、設定されている最初のビットの位置を返します。 5
floor x 以下の最大の整数を返します。 11
fmod x/y の浮動小数点の剰余を返します。 11
frac x の小数部を返します。 11
frexp x の仮数と指数を返します。 21
fwidth abs(ddx(x)) + abs(ddy(x)) を返します。 21
GetRenderTargetSampleCount レンダー ターゲットのサンプルの数を返します。 4
GetRenderTargetSamplePosition 特定のサンプル インデックスのサンプル位置 (x,y) を返します。 4
GroupMemoryBarrier すべてのグループ共有アクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
GroupMemoryBarrierWithGroupSync すべてのグループ共有アクセスが完了し、グループ内のすべてのスレッドがこの呼び出しに到達するまで、グループ内のすべてのスレッドの実行をブロックします。 5
InterlockedAdd dest リソース変数に対して、値を保証したアトミック加算を実行します。 5
InterlockedAnd 値を保証したアトミックな and を実行します。 5
InterlockedCompareExchange 入力値を比較値とアトミックに比較して、その結果を交換します。 5
InterlockedCompareStore 入力値を比較値とアトミックに比較します。 5
InterlockedExchange 値を dest に割り当てて、元の値を返します。 5
InterlockedMax 値を保証したアトミックな max を実行します。 5
InterlockedMin 値を保証したアトミックな min を実行します。 5
InterlockedOr 値を保証したアトミックな or を実行します。 5
InterlockedXor 値を保証したアトミックな xor を実行します。 5
isfinite x が有限の場合は true を返し、それ以外の場合は false を返します。 11
isinf x が +INF または -INF の場合は true を返し、それ以外の場合は false を返します。 11
isnan x が NAN または QNAN の場合は true を返し、それ以外の場合は false を返します。 11
ldexp x * 2exp を返します。 11
length ベクトル v の長さを返します。 11
lerp x + s(y - x) を返します。 11
lit ライティング ベクトル (アンビエント、ディフューズ、スペキュラー、1) を返します。 11
log x の e を底とする対数を返します。 11
log10 x の 10 を底とする対数を返します。 11
log2 x の 2 を底とする対数を返します。 11
mad 3 つの値に対して乗算と加算の算術演算を実行します。 5
max x と y のうちの大きい方の値を選択します。 11
min x と y のうちの小さい方の値を選択します。 11
modf 値 x を小数部と整数部に分割します。 11
mul x と y の行列乗算を実行します。 1
noise パーリン ノイズ アルゴリズムを使用してランダムな値を生成します。 11
normalize 正規化されたベクトルを返します。 11
pow xy を返します。 11
Process2DQuadTessFactorsAvg クワッド パッチの修正済みテッセレーション係数を生成します。 5
Process2DQuadTessFactorsMax クワッド パッチの修正済みテッセレーション係数を生成します。 5
Process2DQuadTessFactorsMin クワッド パッチの修正済みテッセレーション係数を生成します。 5
ProcessIsolineTessFactors 等値線の丸め済みテッセレーション係数を生成します。 5
ProcessQuadTessFactorsAvg クワッド パッチの修正済みテッセレーション係数を生成します。 5
ProcessQuadTessFactorsMax クワッド パッチの修正済みテッセレーション係数を生成します。 5
ProcessQuadTessFactorsMin クワッド パッチの修正済みテッセレーション係数を生成します。 5
ProcessTriTessFactorsAvg トライアングル パッチの修正済みテッセレーション係数を生成します。 5
ProcessTriTessFactorsMax トライアングル パッチの修正済みテッセレーション係数を生成します。 5
ProcessTriTessFactorsMin トライアングル パッチの修正済みテッセレーション係数を生成します。 5
radians x を度単位からラジアン単位に変換します。 1
rcp 要素ごとの逆数の近似値を高速に計算します。 5
reflect 反射ベクトルを返します。 1
refract 屈折ベクトルを返します。 11
reversebits 要素ごとにビットの順序を逆にします。 5
round x を最も近い整数に丸めます。 11
rsqrt 1 / sqrt(x) を返します。 11
saturate x を [0, 1] の範囲にクランプします。 1
sign x の符号を計算します。 11
sin x のサインを返します。 11
sincos x のサインおよびコサインを返します。 11
sinh x のハイパーボリック サインを返します。 11
smoothstep 0 と 1 の間のスムーズなエルミート補間を返します。 11
sqrt 平方根 (成分ごと)。 11
step (x >= a) ? 1 : 0 を返します。 11
tan x のタンジェントを返します。 11
tanh x のハイパーボリック タンジェントを返します。 11
tex1D(s, t) 1D テクスチャー ルックアップ。 1
tex1D(s, t, ddx, ddy) 1D テクスチャー ルックアップ。 21
tex1Dbias 1D バイアス テクスチャー ルックアップ。 21
tex1Dgrad 1D グラデーション テクスチャー ルックアップ。 21
tex1Dlod 1D LOD テクスチャー ルックアップ。 31
tex1Dproj 1D 射影除算テクスチャー ルックアップ。 21
tex2D(s, t) 2D テクスチャー ルックアップ。 11
tex2D(s, t, ddx, ddy) 2D テクスチャー ルックアップ。 21
tex2Dbias 2D バイアス テクスチャー ルックアップ。 21
tex2Dgrad 2D グラデーション テクスチャー ルックアップ。 21
tex2Dlod 2D LOD テクスチャー ルックアップ。 3
tex2Dproj 2D 射影除算テクスチャー ルックアップ。 21
tex3D(s, t) 3D テクスチャー ルックアップ。 11
tex3D(s, t, ddx, ddy) 3D テクスチャー ルックアップ。 21
tex3Dbias 3D バイアス テクスチャー ルックアップ。 21
tex3Dgrad 3D グラデーション テクスチャー ルックアップ。 21
tex3Dlod 3D LOD テクスチャー ルックアップ。 31
tex3Dproj 3D 射影除算テクスチャー ルックアップ。 21
texCUBE(s, t) キューブ テクスチャー ルックアップ。 11
texCUBE(s, t, ddx, ddy) キューブ テクスチャー ルックアップ。 21
texCUBEbias キューブ バイアス テクスチャー ルックアップ。 21
texCUBEgrad キューブ グラデーション テクスチャー ルックアップ。 21
texCUBElod キューブ LOD テクスチャー ルックアップ。 31
texCUBEproj キューブ射影除算テクスチャー ルックアップ。 21
transpose 行列 m の転置行列を返します。 1
trunc 浮動小数点値の端数を切り捨てて整数値に変換します。 1

1 制限事項についてはリファレンス ページを参照してください。

成分とテンプレートの型

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

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

関連項目

HLSL のリファレンス