2

というわけで、今日の質問の続きです。XNA 3.1 の DrawUserPrimitives メソッドを使用して、見栄えの良いリボン トレイルを作成しました。基本的には、モーションが発生するとポリゴンが拡張されます。アンチエイリアシングという1つのことを除いて、すべてが非常に洗練されていて見栄えがします。私は一生、それを適用する方法を考え出すことはできません。

ゲームコンストラクターでこれを設定しました:

graphics.PreferMultiSampling = true;

また、ハードウェアをテストするためにこれを追加しました。

        graphics.PreparingDeviceSettings += new EventHandler<PreparingDeviceSettingsEventArgs>((sender, e) =>
        {
            PresentationParameters parameters = e.GraphicsDeviceInformation.PresentationParameters;
            parameters.MultiSampleQuality = 0;

        #if XBOX
                pp.MultiSampleType = MultiSampleType.FourSamples;
                return;
        #else

            int quality;
            GraphicsAdapter adapter = e.GraphicsDeviceInformation.Adapter;
            SurfaceFormat format = adapter.CurrentDisplayMode.Format;

            if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format, false, MultiSampleType.FourSamples, out quality))
            {
                parameters.MultiSampleType = MultiSampleType.FourSamples;
            }
            else if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format, false, MultiSampleType.TwoSamples, out quality))
            {
                parameters.MultiSampleType = MultiSampleType.TwoSamples;
            }
        #endif
        });

いくつかの印刷行を追加することで、ハードウェアが 4 つのサンプル AA をサポートできることがわかりましたが、これはすべて違いがないようです。私はこれを機能させることができないようです。

これは、すべてのコードが適用された私の証跡の 1 つのスクリーンショットです。

見る? いいえAA!

助けていただければ幸いです。別の問題の解決策としてこれを少し前に見ましたが、そのときも機能しませんでした。

さて、乾杯。

4

1 に答える 1

3

これも修正!

問題は、バック バッファーが適切なアンチエイリアス設定を取得している間に、レンダー ターゲットが取得されないことでした。つまり、レンダー ターゲットへの描画は AA なしで行われましたが、バック バッファーに描画されるテクスチャは AA で行われました。私は今それを修正しました。

于 2012-12-10T19:53:51.157 に答える