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 단색 텍스처 샘플링(즉, 픽셀당 1비트(D3DDDIFMT_A1)으로 서식이 지정된 텍스처)를 샘플링하는 데 사용되는 텍스처 필터 모드입니다. Direct3D 9.L 런타임에서 컨볼루션 필터는 2차원 상자 필터입니다(즉, 모든 가중치 = 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 - 베타) + Tk,j+1*베타], 여기서 0k << Nv
S = 1 /(Nu * Nv)
Nu 및 Nv 는 필터 커널의 너비와 높이입니다.
Ti,j 는 위치(i, j)에서 단색 텍스처의 텍스처 샘플입니다.
필터 작업의 전체 자릿수는 6비트 이상이어야 합니다.
픽셀 중심에서 보간된 텍스처 좌표 값(U, V)은 필터 커널 중앙의 좌표입니다.
왼쪽 위 필터 커널 샘플(Uf,V f)의 좌표는 다음과 같이 계산됩니다.
Uf = U * TextureWidth - Nu * 0.5
Vf = V * TextureHeight - Nv * 0.5
결과
beta = Uf - truncate(Uf)
alpha = Vf - truncate(Vf)
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | d3dumddi.h(D3dumddi.h 포함) |