組み込み関数

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

名前 説明 最小シェーダーモデル
取り消し 実行中の現在の描画またはディスパッチ呼び出しを終了します。 4
絶対 絶対値 (コンポーネントごと)。
acos X の各要素のアークコサインを返します。
すべての X のすべてのコンポーネントが0以外であるかどうかをテストします。
AllMemoryBarrier すべてのメモリアクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
AllMemoryBarrierWithGroupSync すべてのメモリアクセスが完了し、グループ内のすべてのスレッドがこの呼び出しに到達するまで、グループ内のすべてのスレッドの実行をブロックします。 5
いつ X のコンポーネントが0以外であるかどうかをテストします。
asdouble キャスト値を double に再解釈します。 5
asfloat 入力の型を float に変換します。 4
サイン X の各コンポーネントのアークサインを返します。
asint 入力の型を整数に変換します。 4
asuint 64ビット型のビットパターンを uint に再解釈します。 5
asuint 入力の型を符号なし整数に変換します。 4
atan X のアークタンジェントを返します。
atan2 2つの値 (x, y) のアークタンジェントを返します。
ceil X 以上の最小の整数を返します。
CheckAccessFullyMapped サンプル または 読み込み 操作のすべての値が、タイル化された リソース内のマップされたタイルにアクセスしたかどうかを判断します。 5
クリップ X を [ 最小値、最大値の範囲にクランプし ] ます。
clip X のコンポーネントが0未満の場合に、現在のピクセルを破棄します。
cos X のコサインを返します。
cosh X のハイパーボリックコサインを返します。
countbits 入力整数のビット数 (コンポーネントごと) をカウントします。 5
切断 2つの3D ベクトルのクロス積を返します。
D3DCOLORtoUBYTE4 一部のハードウェアでの UBYTE4 サポートの不足に対して、4D ベクトル xto のコンポーネントを Swizzles およびスケールします。
ddx 画面空間の x 座標に関して x の部分派生を返します。
ddx _ 粗い 画面空間の x 座標に関して、低精度の部分派生を計算します。 5
ddx _ 画面空間の x 座標に対して、高精度の部分派生を計算します。 5
ddy 画面空間の y 座標に関して x の部分派生を返します。
ddy _ 粗い 画面空間の y 座標に関して、低精度の部分派生を計算します。 5
ddy _ 画面空間の y 座標に対して、高精度の部分派生を計算します。 5
x をラジアンから度に変換します。
決定 2 乗行列 m の行列を返します。
DeviceMemoryBarrier すべてのデバイス メモリ アクセスが完了するまで、グループ内のすべてのスレッドの実行をブロックします。 5
DeviceMemoryBarrierWithGroupSync すべてのデバイス メモリ アクセスが完了し、グループ内のすべてのスレッドがこの呼び出しに到達するまで、グループ内のすべてのスレッドの実行をブロックします。 5
距離 2 つの点間の距離を返します。
ドット 2 つのベクトルのドット積を返します。 1
dst 距離ベクトルを計算します。 5
errorf 情報キューにエラー メッセージを送信します。 4
EvaluateAttributeAtCentroid ピクセル重心で評価されます。 5
EvaluateAttributeAtSample インデックス付きサンプルの場所で評価されます。 5
EvaluateAttributeSnapped オフセットを使用してピクセル重心で評価されます。 5
Exp base-e 指数を返します。
exp2 Base 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 の大きい方を選択します。
min X と y のうち、小さい方を選択します。
modf 値 x を小数部と整数部に分割します。
msad4 4 バイトの参照値と 8 バイトのソース値を比較し、4 個の合計値のベクターを累積します。 5
mul X と y を使用して行列乗算を実行します。 1
聞こえる Perlin のノイズアルゴリズムを使用して、ランダムな値を生成します。
正規化されたベクターを返します。
えい Xyを返します。
printf カスタムシェーダーメッセージを情報キューに送信します。 4
Process2DQuadTessFactorsAvg クワッドパッチの修正されたテセレーションファクターを生成します。 5
Process2DQuadTessFactorsMax クワッドパッチの修正されたテセレーションファクターを生成します。 5
Process2DQuadTessFactorsMin クワッドパッチの修正されたテセレーションファクターを生成します。 5
Processi因子 Isoline の丸められたテセレーション係数を生成します。 5
ProcessQuadTessFactorsAvg クワッドパッチの修正されたテセレーションファクターを生成します。 5
ProcessQuadTessFactorsMax クワッドパッチの修正されたテセレーションファクターを生成します。 5
ProcessQuadTessFactorsMin クワッドパッチの修正されたテセレーションファクターを生成します。 5
ProcessTriTessFactorsAvg トライパッチの修正されたテセレーションファクターを生成します。 5
ProcessTriTessFactorsMax トライパッチの修正されたテセレーションファクターを生成します。 5
ProcessTriTessFactorsMin トライパッチの修正されたテセレーションファクターを生成します。 5
単位 X を角度からラジアンに変換します。 1
rcp は、コンポーネントごとの高速でおおよその逆数を計算します。 5
反射ベクターを返します。 1
"操作" 屈折ベクターを返します。
reversebits コンポーネントごとにビットの順序を反転させます。 5
誤差 X を最も近い整数に丸めます。
rsqrt 1/sqrt (x) を返します。
彩度 X を0の範囲にクランプします。 [ 1] 1
シャープ X の符号を計算します。
サイン X のサインを返します。
sincos X の正弦とコサインを返します。
sinh X のハイパーボリックサインを返します。
smoothstep 0から1までの smooth Hermite 補間を返します。
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 サンプラー オブジェクト samplersampler1Dsampler2Dsampler3DsamplerCUBE
スカラー (scalar) 1 コンポーネント 基本的な HLSL 型
ベクター 1 コンポーネント以上、最大 4 コンポーネント (含む) 基本的な HLSL 型

関連項目

HLSL のリファレンス