2012-12-17 3 views
1

내 프로젝트에서 앤티 앨리어싱을 사용하려고합니다.d3d9에서 안티 에일리어싱을 사용 하시겠습니까?

HRESULT CreateRenderTarget(
    [in]   UINT Width, 
    [in]   UINT Height, 
    [in]   D3DFORMAT Format, 
    [in]   D3DMULTISAMPLE_TYPE MultiSample, 
    [in]   DWORD MultisampleQuality, 
    [in]   BOOL Lockable, 
    [out, retval] IDirect3DSurface9 **ppSurface, 
    [in]   HANDLE *pSharedHandle 
); 

typedef enum D3DMULTISAMPLE_TYPE { 
    D3DMULTISAMPLE_NONE   = 0, 
    D3DMULTISAMPLE_NONMASKABLE = 1, 
    D3DMULTISAMPLE_2_SAMPLES  = 2, 
    D3DMULTISAMPLE_3_SAMPLES  = 3, 
    D3DMULTISAMPLE_4_SAMPLES  = 4, 
    D3DMULTISAMPLE_5_SAMPLES  = 5, 
    D3DMULTISAMPLE_6_SAMPLES  = 6, 
    D3DMULTISAMPLE_7_SAMPLES  = 7, 
    D3DMULTISAMPLE_8_SAMPLES  = 8, 
    D3DMULTISAMPLE_9_SAMPLES  = 9, 
    D3DMULTISAMPLE_10_SAMPLES  = 10, 
    D3DMULTISAMPLE_11_SAMPLES  = 11, 
    D3DMULTISAMPLE_12_SAMPLES  = 12, 
    D3DMULTISAMPLE_13_SAMPLES  = 13, 
    D3DMULTISAMPLE_14_SAMPLES  = 14, 
    D3DMULTISAMPLE_15_SAMPLES  = 15, 
    D3DMULTISAMPLE_16_SAMPLES  = 16, 
    D3DMULTISAMPLE_FORCE_DWORD = 0xffffffff 
} D3DMULTISAMPLE_TYPE, *LPD3DMULTISAMPLE_TYPE; 

내가 매개 변수 MultiSampleMultisampleQuality을 제공하는 방법을 잘 모르겠습니다 : 먼저 D3D9 인터페이스를 찾습니다. non-maskable multisamplingmaskable의 차이점은 무엇입니까?
2x 앤티 앨리어싱은 무엇에 매핑됩니까?
4x 에일 리어 징 제거 맵은 무엇입니까?
은 D3DMULTISAMPLE_2_SAMPLES + 2q == D3DMULTISAMPLE_4_SAMPLES + 1q입니까?

답변

2

MultisampleQualityD3DMULTISAMPLE_NONMASKABLE을 멀티 샘플 형식 (doc)으로 사용하는 경우에만 사용할 수 있습니다.

D3DMULTISAMPLE_NONMASKABLE은 안티 앨리어싱 지원 (사용자가 원하는 것을 말합니다)이며 품질은 MultisampleQuality -parameter (1 => 2xAA 및 2 => 4xAA)로 결정됩니다.

다른 유형 인 D3DMULTISAMPLE_NONMASKABLE을 사용하는 경우. 'D3DMULTISAMPLE_2_SAMPLES'을 사용하면 렌더링 스테이트먼트 D3DRS_MULTISAMPLEMASK (doc)으로 설정할 수있는 쓰기 마스크를 안티 알리아싱 지원에 추가적으로 사용할 수 있습니다. 이를 통해 멀티 샘플 렌더 타겟의 특정 샘플 세트로 렌더링 할 수 있습니다. 마지막으로 모든 샘플을 평균화하고 표시합니다. 나는이 설정이 당신의 문제에 맞지 않다고 가정한다.