SampleCmp (DirectX HLSL Texture 物件)
取樣紋理,並將單一元件與指定的比較值進行比較。
float Object.SampleCmp (
float Location, float CompareValue, [int Offset] |
比較是儲存在紋理中的第一個元件與傳遞至 方法的比較值之間的單一元件比較。
這個方法只能從圖元著色器叫用;頂點或幾何著色器不支援。
參數
-
物件
-
除了 Texture2DMS、Texture2DMSArray 或 Texture3D) 以外,任何 紋理物件 類型 (。
-
S
-
[in]取樣器比較狀態,這是取樣器狀態,加上比較狀態, (比較函式和比較篩選準則) 。 如需詳細資料和範例,請參閱 取樣器類型 。
-
位置
-
[in]紋理座標。 引數類型相依于 texture-object 類型。
Texture-Object類型 參數類型 Texture1D FLOAT Texture1DArray、 Texture2D float2 Texture2DArray¹, TextureCube float3 TextureCubeArray¹ float4 -
CompareValue
-
做為比較值的浮點值。
-
抵消
-
[in]選擇性紋理座標位移,可用於任何紋理物件類型;位移會套用至取樣之前的位置。 紋理位移必須是靜態的。 引數類型相依于 texture-object 類型。 如需詳細資訊,請參閱 套用紋理座標位移。
Texture-Object類型 參數類型 Texture1D、Texture1DArray int Texture2D、Texture2DArray¹ int2 TextureCube、TextureCubeArray¹ 不支援
傳回值
傳回範圍 [0..1] 中的浮點值。
針對根據篩選模式) 取樣器組態擷取的每個材質 (, SampleCmp 會在比較通過時,針對著色器與紋素 (值 (1,從著色器對輸入) 的第 3 個元件執行 z 值比較;否則為 0) 。 SampleCmp 接著會將每個材質的 0 和 1 結果混合在一起,如同一般紋理篩選 (不是平均) ,並將產生的 [0..1] 值傳回著色器。
備註
比較篩選提供基本篩選作業,適用于更接近百分比的深度篩選。
在浮點資源上使用這個方法 (而不是) 帶正負號的正規化或未帶正負號的格式時,比較值不會在 0.0 到 1.0 之間自動限制。 因此,常見的陰影技術可能需要手動限制比較值。
只在整數位移處使用位移;否則,根據硬體實作或驅動程式設定,您可能會得到不同的結果。
最小著色器模型
下列著色器模型支援此函式。
vs_4_0 | vs_4_1 Vs_4_1 | ps_4_0 | ps_4_1 ー | gs_4_0 | gs_4_1 Gs_4_1 |
---|---|---|---|---|---|
x¹ | x |
- Texture2DArray 和 TextureCubeArray 可在著色器模型 4.1 或更高版本中使用。
- 著色器模型 4.1 可在 Direct3D 10.1 或更高版本中使用。
注意
當您使用實作 Direct3D 功能層級 9中說明的技術時,ps 4_0_level_9_1 和 4_0_level_9_3也提供SampleCmp。