다음을 통해 공유


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

추가 정보

D3DDDIARG_SETCONVOLUTIONKERNELMONO

D3DDDI_DEVICEFUNCS