2

プロジェクトでアンチエイリアシングを有効にしようとしています。最初に 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;

MultiSampleパラメータとを指定する方法がわかりませんMultisampleQualitynon-maskable multisamplingとはどう違いmaskableますか?
2x アンチエイリアシングは何にマッピングされますか?
4x アンチエイリアシングは何にマップされますか?
D3DMULTISAMPLE_2_SAMPLES + 2q == D3DMULTISAMPLE_4_SAMPLES + 1q ですか?

4

1 に答える 1

2

MultisampleQualityD3DMULTISAMPLE_NONMASKABLEmultisampletype ( doc ) として使用する場合にのみ使用できます。

D3DMULTISAMPLE_NONMASKABLEアンチエイリアシング サポートのみを有効にし (それがあなたが探しているものです)、品質はMultisampleQuality-Parameter によって決定されます。ここで、1 => 2xAA および 2 => 4xAA です。

'D3DMULTISAMPLE_2_SAMPLES' など、それ以外のタイプを使用する場合は、D3DMULTISAMPLE_NONMASKABLEアンチエイリアス サポートに加えて、renderstate D3DRS_MULTISAMPLEMASK( doc ) で設定できる書き込みマスクを有効にします。これにより、マルチサンプリングされたレンダー ターゲットの特定のサンプル セットにレンダリングできます。最後に、すべてのサンプルが平均化されて表示されます。この設定はあなたの問題には適していないと思います。

于 2012-12-20T10:00:05.963 に答える