組み込み関数

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

名前 説明 最小シェーダー モデル
abort 実行中の現在の描画またはディスパッチ呼び出しを終了します。 4
abs 絶対値 (コンポーネントごと)。
acos x の各コンポーネントのアークコサインを返します。
すべて x のすべてのコンポーネントが 0 以外であるかどうかをテストします。
AllMemoryBarrier すべてのメモリ アクセスが完了するまでグループのすべてのスレッドの実行をブロックします。 5
AllMemoryBarrierWithGroupSync すべてのメモリ アクセスが完了し、グループのすべてのスレッドがこの呼び出しに到達するまで、グループのすべてのスレッドの実行をブロックします。 5
任意 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
clamp x を範囲 [min, max] にクランプします。
clip x のいずれかのコンポーネントが 0 未満の場合、現在のピクセルを破棄します。
cos x のコサインを返します。
cosh x の双曲線コサインを返します。
countbits 入力整数のビット数 (コンポーネントあたり) をカウントします。 5
cross 2 つの 3D ベクトルの外積を返します。
D3DCOLORtoUBYTE4 一部のハードウェアでの UBYTE4 サポートの欠如を補うために、4D ベクトル x のコンポーネントのスウィズルおよびスケーリングを行います。
ddx 画面空間 x 座標に対して x の偏導関数を返します。
ddx_coarse 画面空間 x 座標に対して低精度の偏導関数を計算します。 5
ddx_fine 画面空間 x 座標に対して高精度の偏導関数を計算します。 5
ddy 画面空間 y 座標に対して x の偏導関数を返します。
ddy_coarse 画面空間 y 座標に対して低精度の偏導関数を計算します。 5
ddy_fine 画面空間 y 座標に対して高精度の偏導関数を計算します。 5
degrees x をラジアンから度に変換します。
determinant 平方行列 m の行列式を返します。
DeviceMemoryBarrier すべてのメモリ アクセスが完了するまで、グループのすべてのスレッドの実行をブロックします。 5
DeviceMemoryBarrierWithGroupSync すべてのデバイス メモリ アクセスが完了し、グループのすべてのスレッドがこの呼び出しに到達するまで、グループのすべてのスレッドの実行をブロックします。 5
distance 2 点間の距離を返します。
dot 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
floor x 以下の最大の整数を返します。
fma a * 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 保証されたアトミックな max を実行します。 5
InterlockedMin 保証されたアトミックな min を実行します。 5
InterlockedOr 保証されたアトミックな or を実行します。 5
InterlockedXor 保証されたアトミックな xor を実行します。 5
isfinite x が有限の場合は true、それ以外の場合は false を返します。
isinf x が +INF または -INF の場合は true、それ以外の場合は false を返します。
isnan x が NAN または QNAN の場合は true、それ以外の場合は false を返します。
ldexp x * 2exp を返します
length ベクトル v の長さを返します。
lerp x + s(y - x) を返します。
lit 照明ベクトル (アンビエント、拡散、反射、1) を返します
log 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
noise パーリン ノイズ アルゴリズムを使用してランダムな値を生成します。
normalize 正規化されたベクトルを返します。
pow xy を返します。
printf カスタム シェーダー メッセージを情報キューに送信します。 4
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 屈折ベクトルを返します。
reversebits コンポーネントごとにビットの順序を逆にします。 5
round x を最も近い整数に丸めます
rsqrt 1 / sqrt(x) を返します
saturate x を範囲 [0, 1] にクランプします 1
sign x の符号を計算します。
sin x のサインを返します
sincos x のサインとコサインを返します。
sinh x の双曲サインを返します
smoothstep 0 から 1 の間の滑らかなエルミート補間を返します。
sqrt 平方根 (コンポーネントごと)
step (x >= a) ? 1 : 0 を返します
tan 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 射影分割を使用したキューブ テクスチャ参照。
transpose 行列 m の転置を返します。 1
trunc 浮動小数点値を切り捨てて整数値にします 1

 

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

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

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

これらのテンプレートの種類 説明 これらのデータ型をサポート
マトリックス 宣言に応じて最大 16 個のコンポーネント 基本的な HLSL 型
object サンプラー オブジェクト samplersampler1Dsampler2Dsampler3DsamplerCUBE
スカラー (scalar) 1 つのコンポーネント 基本的な HLSL 型
ベクター 最小 1 コンポーネント、最大 4 コンポーネント (両端を含む) 基本的な HLSL 型

 

関連項目

HLSL のリファレンス