プレゼンテーション パラメータのMultiSampleプロパティを設定することで、アンチエイリアシングを行わせられます。
列挙子 | マルチサンプリングの品質レベル |
---|---|
None | 無効 |
NonMaskable | PresentParameters.MultiSampleQualityの値 |
TwoSamples | 2 |
ThreeSamples | 3 |
FourSamples | 4 |
FiveSamples | 5 |
SixSamples | 6 |
SevenSamples | 7 |
EightSamples | 8 |
NineSamples | 9 |
TenSamples | 10 |
ElevenSamples | 11 |
TwelveSamples | 12 |
ThirteenSamples | 13 |
FourteenSamples | 14 |
FifteenSamples | 15 |
SixteenSamples | 16 |
MultiSampleType | None | FourSamples | NonMaskable | NonMaskable |
---|---|---|---|---|
MultiSampleQuality | --- | --- | 0 | 1 |
表示イメージ |
マルチサンプリングを有効にするには、スワップ エフェクトでSwapEffect.Discardが指定されている必要があります。
マルチサンプリングがデバイスでサポートされているかどうかは、Manager.CheckDeviceMultiSampleTypeメソッドにより確認できます。
public static bool CheckDeviceMultiSampleType( int adapter, // ディスプレイ アダプタ (グラフィックス・カード) DeviceType deviceType, // デバイス タイプ Format surfaceFormat, // マルチサンプリングするサーフェスのフォーマット bool windowed, // ウィンドウ モードならばtrue、フルスクリーンならばfalse MultiSampleType multiSampleType // マルチサンプリングの品質レベル );
マルチサンプリングのすべての品質のサポートを確認し、 ハードウェアがサポートする最上位の品質に設定します。
PresentParameters parameters = new PresentParameters(); AdapterInformation adapterInformation = Manager.Adapters.Default; // MultiSampleTypeの一覧を取得する MultiSampleType[] multiSampleTypes = ( MultiSampleType[] )Enum.GetValues( typeof( MultiSampleType ) ); // 上位の品質レベルが最初になるように並べ替える Array.Reverse( multiSampleTypes ); foreach( MultiSampleType sampleType in multiSampleTypes ) { int adapter = adapterInformation.Adapter; // ディスプレイ アダプタ DeviceType deviceType = DeviceType.Hardware; // デバイス タイプ bool windowed = parameters.Windowed; // ウィンドウ/フルスクリーン モード // バックバッファとZバッファで 所望のマルチサンプリングがサポートされているか確認する if( Manager.CheckDeviceMultiSampleType( adapter, deviceType, parameters.BackBufferFormat, windowed, sampleType ) && Manager.CheckDeviceMultiSampleType( adapter, deviceType, ( Format )parameters.AutoDepthStencilFormat, windowed, sampleType ) ) { parameters.MultiSample = sampleType; break; } }