プレゼンテーション パラメータの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; } }