組み込み関数 (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 の基本的な型 |