組み込み関数

次の表に、HLSL で使用できる組み込み関数を示します。 各関数には簡単な説明と、入力引数と戻り値の型の詳細を含む参照ページへのリンクがあります。

名前 説明 最小シェーダー モデル
中止 実行中の現在の描画またはディスパッチ呼び出しを終了します。 4
Abs 絶対値 (コンポーネントごと)。
Acos x の各コンポーネントのアークコサインを返します。
すべての x のすべてのコンポーネントが 0 以外であるかどうかをテストします。
AllMemoryBarrier すべてのメモリ アクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
AllMemoryBarrierWithGroupSync すべてのメモリ アクセスが完了し、グループ内のすべてのスレッドがこの呼び出しに達するまで、グループ内のすべてのスレッドの実行をブロックします。 5
any x のいずれかのコンポーネントが 0 以外かどうかをテストします。
asdouble キャスト値を double に再解釈します。 5
asfloat 入力の種類を float に変換します。 4
Asin x の各コンポーネントのアークサインを返します。
asint 入力の種類を整数に変換します。 4
asuint 64 ビット型のビット パターンを uint に再解釈します。 5
asuint 入力型を符号なし整数に変換します。 4
Atan x のアークタンジェントを返します。
atan2 2 つの値 (x,y) のアークタンジェントを返します。
ceil x 以上の最小の整数を返します。
CheckAccessFullyMapped サンプル操作または読み込み操作のすべての値が、タイル化されたリソース内のマップされたタイルにアクセスしたかどうかを判断します 5
クランプ x を範囲 [min, max] にクランプします。
クリップ x のいずれかのコンポーネントが 0 未満の場合は、現在のピクセルを破棄します。
Cos x のコサインを返します。
cosh x の双曲線余弦を返します。
countbits 入力整数のビット数 (コンポーネントあたり) をカウントします。 5
クロス 2 つの 3D ベクトルのクロス積を返します。
D3DCOLORtoUBYTE4 4Dベクトルxtoのコンポーネントをスウィズルしてスケーリングすると、一部のハードウェアでUBYTE4サポートが不足しています。
Ddx 画面空間 x 座標に対する x の部分派生関数を返します。
ddx_coarse 画面空間 x 座標に対する低精度部分派生関数を計算します。 5
ddx_fine 画面空間 x 座標に対して高精度の部分派生関数を計算します。 5
ddy 画面空間 y 座標に対する x の部分派生関数を返します。
ddy_coarse 画面空間 y 座標に対する低精度部分派生関数を計算します。 5
ddy_fine 画面空間 y 座標に対して高精度の部分派生関数を計算します。 5
x をラジアンから度に変換します。
決定 平方行列 m の決定値を返します。
DeviceMemoryBarrier すべてのデバイス メモリ アクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
DeviceMemoryBarrierWithGroupSync すべてのデバイス メモリ アクセスが完了し、グループ内のすべてのスレッドがこの呼び出しに達するまで、グループ内のすべてのスレッドの実行をブロックします。 5
距離 2 点間の距離を返します。
ドット 2 つのベクトルのドット積を返します。 1
Dst 距離ベクトルを計算します。 5
errorf 情報キューにエラー メッセージを送信します。 4
EvaluateAttributeCentroid ピクセル重心で評価します。 5
EvaluateAttributeAtSample インデックス付きサンプルの場所で評価されます。 5
EvaluateAttributeSnapped オフセットを使用してピクセル重心で評価します。 5
Exp 底 -e 指数を返します。
exp2 底 2 指数 (コンポーネントごと)。
f16tof32 uint の下半分に格納されている float16 を float に変換します。 5
f32tof16 入力を float16 型に変換します。 5
faceforward -n * sign(dot(i, ng)) を返します。
firstbithigh 最上位ビットから始まり、コンポーネントごとに下位に動作する最初のセット ビットの位置を取得します。 5
firstbitlow コンポーネントごとに、最下位ビットから始まり、上位に向かって動作する最初のセット ビットの位置を返します。 5
x 以下の最大整数を返します。
fma * b + c の倍精度融合乗算を返します。 5
Fmod x/y の浮動小数点剰余を返します。
Frac x の小数部を返します。
frexp x の仮数と指数を返します。
fwidth abs(ddx(x)) + abs(ddy(x)) を返します。
GetRenderTargetSampleCount レンダー ターゲット サンプルの数を返します。 4
GetRenderTargetSamplePosition 特定のサンプル インデックスのサンプル位置 (x,y) を返します。 4
GroupMemoryBarrier すべてのグループ共有アクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
GroupMemoryBarrierWithGroupSync すべてのグループ共有アクセスが完了し、グループ内のすべてのスレッドがこの呼び出しに達するまで、グループ内のすべてのスレッドの実行をブロックします。 5
InterlockedAdd dest リソース変数への値の保証されたアトミック加算を実行します。 5
InterlockedAnd 保証されたアトミックと. 5
InterlockedCompareExchange 入力と比較値をアトミックに比較し、結果を交換します。 5
InterlockedCompareStore 入力と比較値をアトミックに比較します。 5
InterlockedExchange dest に値を割り当て、元の値を返します。 5
InterlockedMax 保証された最大アトミックを実行します。 5
InterlockedMin 保証されたアトミック分を実行します。 5
InterlockedOr 保証されたアトミックまたは を実行します。 5
InterlockedXor 保証されたアトミック xor を実行します。 5
isfinite x が有限の場合は true、それ以外の場合は false を返します。
isinf x が +INF または -INF の場合は true、それ以外の場合は false を返します。
Isnan x が NAN または QNAN の場合は true、それ以外の場合は false を返します。
ldexp x * 2exp を返します。
長さ ベクター v の長さを返します。
lerp x + s(y - x) を返します。
点灯 照明ベクトル (アンビエント、拡散、反射、1) を返します。
ログ x の底 e の対数を返します。
log10 x の底 10 対数を返します。
log2 x の底 2 の対数を返します。
mad 3 つの値に対して算術乗算/加算演算を実行します。 5
max x と y の大きい方を選択します。
x と y の小さい方を選択します。
modf 値 x を小数部と整数部分に分割します。
msad4 4 バイトの参照値と 8 バイトのソース値を比較し、4 個の合計値のベクターを累積します。 5
mul x と y を使用して行列乗算を実行します。 1
ノイズ Perlin ノイズ アルゴリズムを使用してランダムな値を生成します。
正規化 正規化されたベクターを返します。
えい xy を返します。
Printf カスタム シェーダー メッセージを情報キューに送信します。 4
Process2DQuadTessFactorsAvg クワッド パッチの修正されたテッセレーション係数を生成します。 5
Process2DQuadTessFactorsMax クワッド パッチの修正されたテッセレーション係数を生成します。 5
Process2DQuadTessFactorsMin クワッド パッチの修正されたテッセレーション係数を生成します。 5
ProcessIsolineTessFactors 等値線の丸められたテッセレーション係数を生成します。 5
ProcessQuadTessFactorsAvg クワッド パッチの修正されたテッセレーション係数を生成します。 5
ProcessQuadTessFactorsMax クワッド パッチの修正されたテッセレーション係数を生成します。 5
ProcessQuadTessFactorsMin クワッド パッチの修正されたテッセレーション係数を生成します。 5
ProcessTriTessFactorsAvg 3 パッチの修正されたテッセレーション係数を生成します。 5
ProcessTriTessFactorsMax 3 パッチの修正されたテッセレーション係数を生成します。 5
ProcessTriTessFactorsMin 3 パッチの修正されたテッセレーション係数を生成します。 5
ラジアン x を度からラジアンに変換します。 1
rcp 高速、近似、コンポーネントごとの逆数を計算します。 5
reflect リフレクション ベクターを返します。 1
屈折 屈折ベクトルを返します。
reversebits コンポーネントごとにビットの順序を反転します。 5
ラウンド x を最も近い整数に丸めます
rsqrt 1 / sqrt(x) を返します。
飽和 x を範囲 [0, 1] にクランプします。 1
署名 x の符号を計算します。
x のサインを返します。
sincos x のサインとコサインを返します。
sinh x の双曲線サインを返します。
smoothstep 0 から 1 の間の滑らかなハーマイト補間を返します。
Sqrt 平方根 (コンポーネントごと)
ステップ (x >= a) を返します。 1 : 0
日焼け x のタンジェントを返します。
tanh x の双曲線正接を返します。
tex1D(s, t) 1D テクスチャ参照。 1
tex1D(s, t, ddx, ddy) 1D テクスチャ参照。
tex1Dbias バイアスを使用した 1D テクスチャ参照。
tex1Dgrad グラデーションを使用した 1D テクスチャ参照。
tex1Dlod LOD を使用した 1D テクスチャ ルックアップ。
tex1Dproj 射射分割を使用した 1D テクスチャ参照。
tex2D(s, t) 2D テクスチャ参照。
tex2D(s, t, ddx, ddy) 2D テクスチャ参照。
tex2Dbias バイアスを使用した 2D テクスチャ参照。
tex2Dgrad グラデーションを使用した 2D テクスチャ参照。
tex2Dlod LOD を使用した 2D テクスチャルックアップ。 3
tex2Dproj 射射分割を使用した 2D テクスチャ参照。
tex3D(s, t) 3D テクスチャ参照。
tex3D(s, t, ddx, ddy) 3D テクスチャ参照。
tex3Dbias バイアスを使用した 3D テクスチャ参照。
tex3Dgrad グラデーションを使用した 3D テクスチャ参照。
tex3Dlod LOD を使用した 3D テクスチャルックアップ。
tex3Dproj 射射分割を使用した 3D テクスチャ参照。
texCUBE(s, t) キューブ テクスチャの参照。
texCUBE(s, t, ddx, ddy) キューブ テクスチャの参照。
texCUBEbias 偏りのあるキューブ テクスチャ参照。
texCUBEgrad グラデーションを使用したキューブ テクスチャ参照。
texCUBElod LOD を使用したキューブ テクスチャ参照。
texCUBEproj 射射分割を使用したキューブ テクスチャ参照。
転置 行列 m の入れ替え値を返します。 1
trunc 浮動小数点値を整数値に切り捨てます 1

 

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

コンポーネントとテンプレートの種類

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

これらのテンプレートの種類 説明 これらのデータ型をサポートする
マトリックス 宣言に応じて最大 16 個のコンポーネント 基本的な HLSL 型
object sampler オブジェクト サンプラーサンプラー1Dサンプラー2Dサンプラー3Dサンプラーキューブ
スカラー (scalar) 1 つのコンポーネント 基本的な HLSL 型
ベクター 最小 1 コンポーネント、最大 4 コンポーネント (包括) 基本的な HLSL 型

 

関連項目

HLSL のリファレンス