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) |