共用方式為


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 - truncate(Uf

alpha = Vf - 截斷(Vf

要求

要求 價值
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows作系統中使用。
目標平臺 桌面
標頭 d3dumddi.h (包括 D3dumddi.h)

另請參閱

D3DDDIARG_SETCONVOLUTIONKERNELMONO

D3DDDI_DEVICEFUNCS