PFND3DDDI_SETCONVOLUTIONKERNELMONO回呼函式 (d3dumddi.h)

SetConvolutionKernelMono 函式會定義核心篩選的解析度和權數,此篩選條件會在設定紋理篩選模式D3DTEXF_CONVOLUTIONMONO時使用。

語法

PFND3DDDI_SETCONVOLUTIONKERNELMONO Pfnd3dddiSetconvolutionkernelmono;

HRESULT Pfnd3dddiSetconvolutionkernelmono(
  HANDLE hDevice,
  const D3DDDIARG_SETCONVOLUTIONKERNELMONO *unnamedParam2
)
{...}

參數

hDevice

顯示裝置的句柄 (圖形內容) 。

unnamedParam2

pData [in]

D3DDDIARG_SETCONVOLUTIONKERNELMONO 結構的指標,描述設定單色卷積核心的參數。

傳回值

SetConvolutionKernelMono 會傳回下列其中一個值:

傳回碼 描述
S_OK 已成功設定單色卷積核心。
E_OUTOFMEMORY SetConvolutionKernelMono 無法為其配置所需的記憶體來完成。

備註

D3DTEXF_CONVOLUTIONMONO是一種紋理篩選模式,用於取樣單色紋理 (,也就是每個圖元格式化為一個位的紋理 (D3DDDIFMT_A1) ) 。 在 Direct3D 9.L 運行時間中,捲積篩選是二維方塊篩選 (也就是擁有權數 = 1.0) 。 不過, SetConvolutionKernelMono 函式的定義是支援更一般的篩選條件。 當D3DTEXF_CONVOLUTIONMONO設定為紋理取樣器時,會忽略紋理取樣器狀態D3DTSS_MIPFILTER、D3DTSS_MINFILTER和D3DTSS_MAGFILTER。 此篩選模式中應該套用具有框線色彩 0 的紋理位址D3DTADDRESS_BORDER。 如果使用者模式顯示驅動程式應該傳回錯誤,如果此篩選模式與非單色紋理搭配使用,則忽略轉譯的基本類型。

下列公式可用來執行卷積:

Result = Sum (i=0, i <Nv) [ (Ri* (1 - alpha) + Ri+1*alpha) * S) ]

Rk = Sum (j=0, j <Nu) [Tk,j* (1 - beta) + Tk,j+1*beta],其中 0 < k < Nv

S = 1 / (Nu * Nv)

Nu 和 Nv 是篩選核心的寬度和高度。

Ti,j 是位於 i、 j) (位置的單色紋理紋理樣本。

篩選作業的有效位數至少必須是6位。

在圖元中心 (U、V) 的插補紋理座標值是篩選核心中心座標。

左上方篩選核心範例 (Uf,Vf) 的座標會計算為:

Uf = U * TextureWidth - Nu * 0.5

Vf = V * TextureHeight - Nv * 0.5

結果為

beta = Uf - 截斷 U f (Uf)

alpha = Vf - 截斷 (Vf)

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

D3DDDIARG_SETCONVOLUTIONKERNELMONO

D3DDDI_DEVICEFUNCS