Вопрос об антиалиасе XNA!

У меня проблемы с XNA и сглаживанием. Я могу активировать его с помощью

        graphics.PreferMultiSampling = true;
        graphics.ApplyChanges();

однако - это всего лишь 2-кратное сглаживание. Даже если я поставлю

graphics.GraphicsDevice.PresentationParameters.MultiSampleType = MultiSampleType.SixteenSamples;

остается только 2-кратное сглаживание. Если я перейду к настройкам своего графического драйвера (NVIDIA GeForce 9800 GT) и установлю тип сглаживания в соответствии с решением приложения на 16x, то я получу красивое и чистое сглаживание. Но если он установлен на «Приложение решает», я не получаю больше, чем в 2 раза

Кто-нибудь знает, почему? Спасибо!


person Mat    schedule 23.11.2009    source источник
comment
В какой функции вы устанавливаете параметры графики? Вы устанавливаете их все перед вызовом ApplyChanges()?   -  person Venesectrix    schedule 23.11.2009
comment
первый фрагмент кода, который я вызываю в конструкторе игрового класса, и второй фрагмент кода, который я вызываю в функции LoadContent(), и после этого я вызываю Graphics.ApplyChanges() во второй раз   -  person Mat    schedule 23.11.2009


Ответы (1)


Я бы попробовал следовать этим инструкциям в MSDN. В этой ветке на форумах XNA Шон Харгривз рассказывает другому человеку ( кто использует код, похожий на ваш), что это не способ настройки мультисэмплинга. Он указывает, что это должно быть указано в параметрах при создании устройства. В статье MSDN показано, какое событие нужно обработать, чтобы настроить сглаживание в нужное время. Эта ветка также в основном указывает на то же самое: что вы должны выполнить это тип установки в обработчике событий.

Кроме того, я считаю, что пример MSDN проверяет 4XAA и 2XAA, поэтому вам, возможно, придется изменить код для поддержки 16XAA. Однако, изучая это, я увидел эту цитату в первом потоке XNA, на который я ссылался:

Кроме того, я не знаю ни одного графического процессора, поддерживающего 16 подвыборок для мультисэмплинга. Например, имена режимов «16x», которые вы видите в сериях Nvidia 8000 и 9000, на самом деле используют 4 образца с уровнем качества «2» IIRC. Максимальная поддержка этих графических процессоров составляет 8 подвыборок, что соответствует настройкам «8xQ» и «16xQ».

Итак, я не знаю точно, какие настройки вам придется использовать, чтобы получить 16XAA; возможно, вам придется немного поиграть с ним.

person Venesectrix    schedule 23.11.2009