範例 (S,float,int,float,uint) 函式 (HLSL 參考)
使用選擇性值取樣 Texture2D ,以固定詳細資料層級 (LOD) 值,並傳回作業的狀態。
注意
需要 著色器模型 5 或更高版本。
語法
DXGI_FORMAT Sample(
in SamplerState S,
in float Location,
in int Offset,
in float Clamp,
out uint Status
);
參數
-
S [in]
-
取樣器狀態。 這是在包含狀態指派之效果檔案中宣告的物件。
-
位置 [in]
-
材質座標。 引數類型相依于 texture-object 類型。
Texture-Object類型 參數類型 Texture1D FLOAT Texture1DArray、 Texture2D float2 Texture2DArray、Texture3D、TextureCube float3 TextureCubeArray float4 -
位移 [in]
-
選擇性紋理座標位移,可用於任何紋理物件類型;位移會套用至取樣之前的位置。 紋理位移必須是靜態的。 引數類型相依于 texture-object 類型。 如需詳細資訊,請參閱 套用紋理座標位移。
Texture-Object類型 參數類型 Texture1D、Texture1DArray int Texture2D、Texture2DArray int2 Texture3D int3 TextureCube、TextureCubeArray 不支援 -
限制 [in]
-
要限制範例 LOD 值的選擇性值。 例如,如果您傳遞 2.0f 作為限制值,則確定沒有任何個別樣本存取小於 2.0f 的 mip 層級。
-
狀態 [out]
-
作業的狀態。 您無法直接存取狀態;而是將狀態傳遞至 CheckAccessFullyMapped 內建函式。 CheckAccessFullyMapped如果對應範例、收集或載入作業中的所有值都存取並排顯示資源中的對應磚,則會傳回TRUE。 如果從未對應的磚取得任何值, CheckAccessFullyMapped 會傳回 FALSE。
傳回值
紋理格式,這是 DXGI_FORMAT中列出的其中一個具型別值。
備註
紋理取樣會使用紋素位置來查閱紋素值。 位移可以套用至查閱之前的位置。 取樣器狀態包含取樣和篩選選項。 這個方法可以在圖元著色器內叫用,但頂點著色器或幾何著色器不支援此方法。
只在整數位移處使用位移;否則,根據硬體實作或驅動程式設定,您可能會得到不同的結果。
計算紋素位置
紋理座標是參考紋理資料的浮點值,也稱為正規化紋理空間。 位址換行模式會依此順序套用, (紋理座標 + 位移 + 包裝模式) 修改 [0...1] 範圍以外的紋理座標。
針對紋理陣列,location 參數中的其他值會指定紋理陣列中的索引。 此索引會被視為縮放的浮點值 (,而不是標準紋理座標的標準化空間) 。 整數索引的轉換順序如下, (float + round-to-near-even 整數 + 限制到陣列範圍) 。
套用紋理座標位移
位移參數會修改材質空間中的紋理座標。 即使紋理座標是標準化浮點數,位移仍會套用整數位移。 另請注意,紋理位移必須是靜態的。
傳回的資料格式取決於紋理格式。 例如,如果紋理資源是以DXGI_FORMAT_A8B8G8R8_UNORM_SRGB格式定義,取樣作業會將取樣的紋素從 gamma 2.0 轉換成 1.0、篩選,並將結果寫入為範圍 [0..1] 中的浮點值。
另請參閱