內建函式

下表列出 HLSL 中可用的內建函式。 每個函式都有簡短的描述,以及參考頁面的連結,其中包含輸入引數和傳回型別的詳細資料。

名稱 描述 最小著色器模型
中止 終止正在執行的目前繪製或分派呼叫。 4
Abs 每個元件) (絕對值。
acos 傳回 x 每個元件的反余弦值。
所有 測試 x 的所有元件是否為非零。
AllMemoryBarrier 封鎖群組中所有線程的執行,直到所有記憶體存取都完成為止。 5
AllMemoryBarrierWithGroupSync 封鎖群組中所有線程的執行,直到所有記憶體存取都已完成,且群組中的所有線程都已到達此呼叫為止。 5
任何 測試 x 的任何元件是否為非零。
asdouble 將轉換值重新解譯成雙精度浮點數。 5
asfloat 將輸入類型轉換為 float。 4
asin 傳回 x 每個元件的反正弦值。
asint 將輸入類型轉換為整數。 4
asuint 將 64 位類型的位模式重新解譯為 uint。 5
asuint 將輸入類型轉換為不帶正負號的整數。 4
atan 傳回 x 的反正切值。
atan2 傳回兩個值的反正切值, (x,y) 。
ceil 傳回大於或等於 x 的最小整數。
CheckAccessFullyMapped 判斷 範例載入 作業中的所有值是否存取 並排式資源中的對應磚。 5
將 x 限制為範圍 [min, max]。
clip 如果 x 的任何元件小於零,則會捨棄目前的圖元。
因為 傳回 x 的余弦值。
cosh 傳回 x 的雙曲余弦值。
countbits 計算輸入整數中每個元件) (位數目。 5
cross 傳回兩個 3D 向量的交叉乘積。
D3DCOLORtoUBYTE4 Swizzles 和 scales 4D vector x 的元件可補償某些硬體中缺少 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
distance 傳回兩點之間的距離。
傳回兩個向量的內積。 1
Dst 計算距離向量。 5
errorf 將錯誤訊息提交至資訊佇列。 4
EvaluateAttributeCentroid 評估圖元中心。 5
EvaluateAttributeAtSample 評估索引的範例位置。 5
EvaluateAttributeSnapped 以位移在圖元心評估。 5
exp 傳回 base-e 指數。
exp2 每個元件) 的基底 2 指數 (。
f16tof32 將儲存在 uint 下半部的 float16 轉換為 float。 5
f32tof16 將輸入轉換成 float16 類型。 5
臉部向前 會傳回 -n * 符號 (點 (i, ng) ) 。
firstbithigh 取得從最高順序位開始的第一個設定位位置,並依每個元件向下運作。 5
firstbitlow 傳回從最低順序位開始的第一個設定位位置,並依每個元件向上工作。 5
地板 傳回小於或等於 x 的最大整數。
fma 傳回雙精確度融合加法 * b + c。 5
fmod 傳回 x/y 的浮點餘數。
壓裂 傳回 x 的小數部分。
frexp 傳回 x 的 mantissa 和指數。
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 的 base-e 對數。
log10 傳回 x 的 base-10 對數。
log2 傳回 x 的 base-2 對數。
瘋狂 在三個值上執行算術乘法/加法運算。 5
麥克斯 選取 x 和 y 的大於 。
分鐘 選取 x 和 y 的較小者。
modf 將 x 值分割成小數和整數部分。
msad4 比較 4 位元組參考值和 8 位元組來源值,並累積 4 個總和的向量。 5
mul 使用 x 和 y 執行矩陣乘法。 1
雜訊 使用 Perlin-noise 演算法產生隨機值。
規範 傳回標準化向量。
戰俘 傳回 xy
Printf 將自訂著色器訊息提交至資訊佇列。 4
Process2DQuadTessFactorsAvg 產生四邊形修補的更正鑲嵌因數。 5
Process2DQuadTessFactorsMax 產生四邊形修補的更正鑲嵌因數。 5
Process2DQuadTessFactorsMin 產生四邊形修補的更正鑲嵌因數。 5
ProcessIsolineTessFactors 產生 isoline 的四捨五入鑲嵌因數。 5
ProcessQuadTessFactorsAvg 產生四邊形修補的更正鑲嵌因數。 5
ProcessQuadTessFactorsMax 產生四邊形修補的更正鑲嵌因數。 5
ProcessQuadTessFactorsMin 產生四邊形修補的更正鑲嵌因數。 5
ProcessTriTessFactorsAvg 針對三個修補程式產生修正的鑲嵌因數。 5
ProcessTriTessFactorsMax 針對三個修補程式產生修正的鑲嵌因數。 5
ProcessTriTessFactorsMin 針對三個修補程式產生修正的鑲嵌因數。 5
弧度 將 x 從度轉換為弧度。 1
rcp 計算快速、近似、每個元件的相互值。 5
反映 傳回反映向量。 1
折射 傳回 refraction 向量。
reversebits 反轉每個元件的位順序。 5
將 x 四捨五入為最接近的整數
rsqrt 傳回 1 / sqrt (x)
飽和 將 x 限制為範圍 [0, 1] 1
標誌 計算 x 的符號。
傳回 x 的正弦值
sincos 傳回 x 的正弦和余弦值。
sinh 傳回 x 的雙曲正弦值
smoothstep 傳回介於 0 到 1 之間的平滑 Hermite 插補。
sqrt 每個元件 (平方根)
傳回 (x > =) ? 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) Cube 紋理查閱。
texCUBE (s, t, ddx, ddy) Cube 紋理查閱。
texCUBEbias 具有偏差的 Cube 紋理查閱。
texCUBEgrad 具有漸層的 Cube 紋理查閱。
texCUBElod 使用 LOD 的 Cube 紋理查閱。
texCUBEproj 具有投影分割的 Cube 紋理查閱。
transpose 傳回矩陣 m 的轉置。 1
trunc 將浮點值截斷 (s) 為整數值, (s) 1

 

¹ 如需限制,請參閱參考頁面。

元件和範本類型

HLSL 內建函式宣告會針對輸入參數引數和傳回值使用元件類型和範本類型。 下表列出可用的類型。

這些範本類型 描述 支援這些資料類型
矩陣 根據宣告,最多 16 個元件 基本 HLSL 類型
物件 (object) sampler 物件 samplersampler1Dsampler2Dsampler3DsamplerCUBE
純量 (scalar) 1 個元件 基本 HLSL 類型
向量 最小 1 個元件,最多 4 個元件 (內含) 基本 HLSL 類型

 

另請參閱

HLSL 的參考