Билинейная трилинейная анизотропная что лучше
Билинейная трилинейная анизотропная что лучше
Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.
Переопределяет режим фильтрации для соответствующих дискретизаторов текстур.
Различные способы дискретизации текстур по-разному сказываются на производительности и качестве изображения. Ниже перечислены режимы фильтрации в порядке возрастания влияния на производительность и качества изображения:
точечная фильтрация (наименьшие затраты и качество изображения);
анизотропная фильтрация (наибольшие затраты и наивысшее качество изображения).
Если потери производительности для каждого варианта значительны или растут при использовании более ресурсозатратных режимов фильтрации, можно сравнить эти потери со степенью повышения качества изображения. В соответствии с результатами оценки можно признать потери производительности, за счет которых повышается качество изображения, допустимыми либо снизить качество изображения, чтобы увеличить частоту кадров или повысить производительность для решения других задач.
Если потери производительности оказываются пренебрежимо малы или стабильны вне зависимости от режима фильтрации, например, если GPU имеет очень высокую пропускную способность шейдеров и широкую полосу пропускания памяти, рекомендуем использовать анизотропную фильтрацию, чтобы обеспечить максимальное качество изображения.
Эти варианты переопределяют состояния дискретизатора при вызове ID3D11DeviceContext::PSSetSamplers , при котором режим фильтрации предоставленного приложением дискретизатора имеет одно из следующих значений:
Для варианта Точечная фильтрация текстур определенный приложением режим фильтрации заменяется на D3D11_FILTER_MIN_MAG_MIP_POINT , для варианта Билинейная фильтрация текстур он заменяется на D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT , а для варианта Трилинейная фильтрация текстур он заменяется на D3D11_FILTER_MIN_MAG_MIP_LINEAR .
Для варианта Анизотропная фильтрация текстур определенный приложением режим фильтрации заменяется на D3D11_FILTER_ANISOTROPIC , а свойству «Максимальная анизотропия» присваивается значение 16.
В Direct3D на функциональном уровне 9.1 максимальная анизотропия равна 2x. Так как вариант Анизотропная фильтрация текстур пытается использовать исключительно 16-кратную анизотропию, воспроизведение завершается сбоем при запуске анализа кадров на устройстве с функциональным уровнем 9.1. К современным устройствам, на которые распространяется это ограничение, относятся планшеты Surface RT и Surface 2 с ОС Windows на основе архитектуры ARM. Ограничение также может распространяться на более старые GPU, которые, однако, выходят из употребления и встречаются все реже.
Вариант Точечная фильтрация текстур можно воспроизвести с помощью следующего кода:
Вариант Билинейная фильтрация текстур можно воспроизвести с помощью следующего кода:
Вариант Трилинейная фильтрация текстур можно воспроизвести с помощью следующего кода:
Вариант Анизотропная фильтрация текстур можно воспроизвести с помощью следующего кода:
Графические настройки в компьютерных играх — подробный разбор
На сайте PC Gamer появился интересный разбор графических настроек в компьютерных играх, где подробно рассказано обо всех популярных инструментах, фильтрах и механизмах обработки изображения. Мы перевели его на русский язык, чтобы вы могли сами настраивать свои игры, избавляться от лагов и любоваться красивой графикой.
Итак, сегодня мы с вами разберемся, что означают те или иные графические настройки в компьютерных играх.
У Nvidia и AMD есть программное обеспечение для автоматической настройки графики согласно техническим характеристикам вашего компьютера. Со своей задачей программы справляются неплохо, но часто ручная настройка приносит куда больше пользы. Все-таки, мы ПК-бояре, у нас должна быть свобода выбора!
Если вы новичок в области игровой графики, это руководство создано специально для вас. Мы расшифруем основные пункты любого меню «Настройки графики» в ваших играх и объясним, на что они влияют. Эта информация поможет вам избавиться от лагов и фризов в любимой игре, не лишаясь красивой картинки. А владельцы мощных компьютеров поймут, как настроить самую сочную и привлекательную графику, чтобы записывать крутые видео и делать зрелищные скриншоты.
Начнем с фундаментальных понятий, а затем пройдемся по тонким настройкам в рамках нескольких разделов, посвященных анизотропной фильтрации, сглаживанию и постобработке. Для написания этого гайда мы пользовались информацией, полученной от профессионалов: Алекса Остина, дизайнера и программиста Cryptic Sea, Николаса Вайнинга, технического директора и ведущего программиста Gaslamp Games и от представителей Nvidia. Сразу отметим, что статью мы пишем простыми словами, опуская подробные технические детали, чтобы вам было легче понять механизмы работы разных технологий.
Содержание
Разрешение
Пиксель — основная единица цифрового изображения. Это цветовая точка, а разрешение — количество столбцов и рядов точек на вашем мониторе. Самые распространенные разрешения на сегодня: 1280×720 (720p), 1920×1080 (1080p), 2560×1440 (1440p) и 3840 x 2160 (4K или «Ultra-HD»). Но это для дисплеев формата 16:9. Если у вас соотношение сторон 16:10, разрешения будут слегка отличаться: 1920×1200, 2560×1600 и т.д. У ультрашироких мониторов разрешение тоже другое: 2560×1080, 3440×1440 и т.д.
Кадры в секунду (frames per second, FPS)
Если представить, что игра — это анимационный ролик, то FPS будет числом изображений, показанных за секунду. Это не то же самое, что частота обновления дисплея, измеряемая в герцах. Но эти два параметра легко сравнивать, ведь как монитор на 60 Гц обновляется 60 раз за секунду, так и игра при 60 FPS выдает именно столько кадров за тот же отрезок времени.
Чем сильнее вы загрузите видеокарту обработкой красивых, наполненных деталями игровых сцен, тем ниже будет ваш FPS. Если частота кадров окажется низкой, они будут повторяться и получится эффект подтормаживания и подвисания. Киберспортсмены охотятся за максимальном возможными показателями FPS, особенно в шутерах. А обычные пользователи зачастую довольствуются играбельными показателями — это где-то 60 кадров в секунду. Однако, мониторы на 120-144 Гц становятся более доступными, поэтому потребность в FPS тоже растет. Нет смысла играть на 120 герцах, если система тянет всего 60-70 кадров.
Так как в большинстве игр нет встроенного бенчмарка, для измерения кадров в секунду используется стороннее программное обеспечение, например, ShadowPlay или FRAPS. Однако, некоторые новые игры с DX12 и Vulkan могут некорректно работать с этими программами, чего не наблюдалось со старыми играми на DX11.
Апскейлинг и даунсэмплинг
В некоторых играх есть настройка «разрешение рендеринга» или «rendering resolution» — этот параметр позволяет поддерживать постоянное разрешение экрана, при этом настраивая разрешение, при котором воспроизводится игра. Если разрешение рендеринга игры ниже разрешения экрана, оно будет увеличено до масштабов разрешения экрана (апскейлинг). При этом картинка получится ужасной, ведь она растянется в несколько раз. С другой стороны, если визуализировать игру с большим разрешением экрана (такая опция есть, например, в Shadow of Mordor), она будет выглядеть намного лучше, но производительность станет заметно ниже (даунсэмплинг).
Производительность
На производительность больше всего влияет разрешение, поскольку оно определяет количество обрабатываемых графическим процессором пикселей. Вот почему консольные игры с разрешением 1080p, часто используют апскейлинг, чтобы воспроизводить крутые спецэффекты, сохраняя плавную частоту кадров.
Мы использовали наш Large Pixel Collider (суперкомпьютер от сайта PC Gamer), включив две из четырех доступных видеокарт GTX Titan, чтобы продемонстрировать, как сильно разрешение влияет на производительность.
Тесты проводились в бенчмарке Shadow of Mordor:
1980х720 (½ родного разрешения)
2560х1440 (родное разрешение)
5120х2880 (x2 родного разрешения)
Вертикальная синхронизация и разрывы кадров
Когда цикл обновления дисплея не синхронизирован с циклом рендеринга игры, экран может обновляться в процессе переключения между готовыми кадрами. Получается эффект разрыва кадров, когда мы видим части двух или более кадров одновременно.
Одним из решений этой проблемы стала вертикальная синхронизация, которая почти всегда присутствует в настройках графики. Она не позволяет игре показывать кадр, пока дисплей не завершит цикл обновления. Это вызывает другую проблему — задержка вывода кадров, когда игра способна показать большее количество FPS, но ограничена герцовкой монитора (например, вы могли бы иметь 80 или даже 100 кадров, но монитор позволит показывать только 60).
Адаптивная вертикальная синхронизация
Бывает и так, что частота кадров игры падает ниже частоты обновления монитора. Если частота кадров игры превышена, вертикальная синхронизация привязывает ее к частоте обновления монитора и она, например, на дисплее с 60 Гц не превысит 60 кадров. А вот когда частота кадров падает ниже частоты обновления монитора, вертикальная синхронизация привязывает ее к другому синхронизированному значению, например, 30 FPS. Если частота кадров постоянно колеблется выше и ниже частоты обновления, появляются подтормаживания.
Чтобы решить эту проблему, адаптивная вертикальная синхронизация от Nvidia отключает синхронизацию каждый раз, когда частота кадров падает ниже частоты обновления. Эту функцию можно включить в панели управления Nvidia — она обязательна для тех, кто постоянно включает вертикальную синхронизацию.
Технологии G-sync и FreeSync
Новые технологии помогают разобраться со многими проблемами, которые зачастую основаны на том, что у дисплеев фиксированная частота обновления. Но если частоту дисплея можно было бы изменять в зависимости от FPS, пропали бы разрывы кадров и подтормаживания. Такие технологии уже есть, но для них нужны совместимые видеокарта и дисплей. У Nvidia есть технология G-sync, а у AMD — FreeSync. Если ваш монитор поддерживает одну из них и она подходит к установленной видеокарте, проблемы решены.
Сглаживание (Anti-aliasing, антиалиасинг)
Инструментов для этого достаточно, но легче объяснить на примере суперсэмплинга (SSAA). Эта технология отрисовывает кадры с более высоким разрешением, чем у экрана, а затем сжимает их обратно до его размера. На предыдущей странице вы могли видеть эффект от сглаживания при уменьшении частоты в Shadow of Mordor с 5120х2880 до 1440p.
Взгляните на пиксель черепичной крыши. Он оранжевого цвета. Тут же и пиксель голубоватого неба. Находясь рядом, они создают жесткий зубчатый переход от крыши к небу. Но если визуализировать сцену с четырехкратным разрешением, вместо одного пикселя оранжевой крыши на этом же месте будут четыре пикселя. Некоторые из них будут оранжевыми, некоторые «небесными». Стоит взять значение всех четырех пикселей, как получится нечто среднее — если по такому принципу построить всю сцену, переходы станут мягче и «эффект лестницы» пропадет.
Такова суть технологии. Но, она требует от системы очень много ресурсов. Ей приходится отрисовывать каждый кадр с разрешением в два или более раз больше, чем оригинальное разрешение экрана. Даже в случае с нашими топовыми видеокартами суперсэмплинг с разрешением 2560х1440 кажется нецелесообразным. К счастью, есть альтернативы:
Мультисэмплинг (MSAA): Эффективнее суперсэмплинга, но все еще прожорлив. В старых играх он был стандартом, а его суть объясняется в видео, которое вы увидите ниже.
Усовершенствованный мультисэмплинг (CSAA): более эффективная версия MSAA от Nvidia для ее видеокарт.
Усовершенствованный мультисэмплинг (CFAA): тоже апгрейд MSAA, только от компании AMD для ее карточек.
Метод быстрого приближения (FXAA): вместо анализа каждого отдельного пикселя, FXAA накладывается в качестве фильтра постобработки на всю сцену целиком после ее рендеринга. FXAA также захватывает места, которые пропускаются при включении MSAA. Хотя сам метод быстрого приближения тоже пропускает много неровностей.
Морфологический метод (MLAA): он свойственен видеокартам AMD и тоже пропускает этап рендеринга. MLAA обрабатывает кадр, выискивая алиасинг и сглаживая его. Как нам объяснил Николас Вайнинг: «Морфологическое сглаживание работает с морфологией (паттернами) неровностей на краях моделей; оно вычисляет оптимальный способ удаления лесенок для каждого вида неровностей путем разбиения краев и зубцов на небольшие наборы морфологических операторов. А затем использует специальные типы смешивания для каждого отдельного набора». Включить MLAA можно в панели управления Catalyst.
Улучшенное субпиксельное морфологическое сглаживание (SMAA): еще один вид постобработки, в котором сочетаются детали MLAA, MSAA и SSAA. Такой метод можно совмещать со SweetFX, а многие современные игры поддерживают его изначально.
Временное сглаживание (TAA или TXAA): TXAA изначально разрабатывалась для графических процессоров Nvidia уровня Kepler и более поздних. Но затем появились не настолько специфические формы временного сглаживания, которые обычно обозначаются, как TAA. При таком способе следующий кадр сравнивается с предыдущим, после чего обнаруживаются и устраняются неровности. Происходит это при поддержке разных фильтров, которые уменьшают «ползающую лесенку» в движении.
Николас Вайнинг объясняет: «Идея TAA заключается в ожидании того, что два идущих друг за другом кадра будут очень похожи, ведь пользователь в игре двигается не настолько быстро. Поэтому раз объекты на экране переместились несильно, мы можем получить данные из предыдущего кадра, чтобы дополнить участки, нуждающиеся в сглаживании».
Многокадровое сглаживание (MFAA): появилось с релизом графических процессоров Maxwell от Nvidia. Тогда как MSAA работает с устойчивыми шаблонами, MFAA позволяет их программировать. Представители Nvidia подробно объясняют технологию в видео ниже (о нем мы уже говорили раньше и очень скоро вы его увидите).
Суперсэмплинг с глубоким обучением (DLSS): новейшая технология Nvidia, доступная лишь в некоторых играх и с видеокартами GeForce RTX. По словам компании: «DLSS использует нейронную сеть для определения многомерных особенностей визуализированной сцены и интеллектуального объединения деталей из нескольких кадров для создания высококачественного финального изображения. DLSS использует меньше сэмплов, чем TAA, при этом избегая алгоритмических трудностей с прозрачностями и другими сложными элементами сцен».
Другими словами, DLSS справляется с задачей лучше и эффективнее, чем TAA, но технологию нужно отдельно готовить к каждой игре. Если не обучить ее должным образом, многие места окажутся размытыми.
Что означают цифры?
В настройках сглаживания вы часто видите значения: 2x, 4x, 8x и т.д. Эти цифры рассказывают о количестве используемых образцов цвета и, как правило, чем больше число, тем точнее будет сглаживание (при этом оно потребует больше системных ресурсов).
Но есть исключения. Так, CSAA пытается достичь сглаживания на уровне MSAA с меньшим количеством образцов цвета. Поэтому 8xCSAA фактически использует только четыре образца цвета. Есть и 8QxCSAA — этот способ сглаживания увеличивает количество образцов цвета до восьми, чтобы повысить точность.
Производительность
Мы использовали бенчмарк Batman: Arkham City, чтобы протестировать несколько старых методов сглаживания: MSAA, FXAA и TXAA. Результаты, как и ожидалось, показывают, что FXAA требует меньше всего ресурсов, в то время как MSAA и TXAA сильно влияют на среднюю частоту кадров.
Результаты тестирования сглаживания в Batman: Arkham City (на двух Nvidia GTX Titan SLI):
Влияние настроек драйвера NVIDIA на производительность
Вы, наверное, знаете (а, может, и не знаете) о том, что не только настройки графики в играх влияют на производительность/качество графики. Есть ещё немало настроек в самих драйверах видеокарт. Да, настройки есть, но для чего они нужны и нужны ли вообще? Давайте разбираться…
Я решил проверить влияние настроек драйвера NVIDIA на производительность,
а вместе с тем и на качество картинки в различных играх. Я буду рассматривать следующие настройки драйвера:
1) Включение масштабируемых текстур: нет, билинейная, трилинейная
2) Фильтрация текстур – анизотропная оптимизация образцов: вкл, выкл
3) Фильтрация текстур – качество: высокая производительность, качество, высокое качество
4) Фильтрация текстур – отрицательное отклонение уровня детализации: разрешить, привязка
5) Фильтрация текстур – трилинейная оптимизация: вкл, выкл
I) Crysis (моя особая настройка графики, описанная в статье об оптимизации Crysis, Depth of Field=2):
— Benchmark GPU
— Benchmark CPU
— FRAPS-тест: уровень Recovery. Лес после деревни. Все враги убиты. Сохраняюсь в определённом месте, отсюда делаю несколько шагов вперёд.
II) Call of Duty 4 — FRAPS-тест: начало задания “Ультиматум”. Делаю несколько шагов вперёд, осматриваюсь по сторонам. Врагов поблизости нет, только свои.
III) BioShock – FRAPS-тест: уровень “Медицинский павильон”. Делаю несколько шагов, осматриваюсь по сторонам. За стеной бродит Большой Папочка.
IV) F.E.A.R. Встроенный бенчмарк.
V) The Elder Scrolls IV: Oblivion – FRAPS-тест: Великий лес, день. Делаю несколько шагов, осматриваюсь по сторонам. Врагов поблизости нет.
VI) Prey — мой собственный бенчмарк: никаких врагов вокруг, но хорошая нагрузка на видеокарту.
VII) S.T.A.L.K.E.R. – FRAPS-тест: начало игры – уровень “Кордон”.
VIII) Call of Juarez DX9 – FRAPS-тест: начало игры.
Я брал для тестов такие места, где влияние процессора на производительность незначительно. Настройки тестирования – максимальные. Разрешение – 1024х768. Сглаживание – 4х, анизотропная фильтрация – 16х (для The Elder Scrolls IV: Oblivion и BioShock – из драйвера; для F.E.A.R., Prey и Call of Duty 4 – из настроек в меню; для Crysis – отключены; для S.T.A.L.K.E.R. и Call of Juarez – только анизотропная фильтрация 16х), вертикальная синхронизация и тройная буферизация отключены, потоковая оптимизация – авто (призвана увеличивать производительность на многоядерных ЦП в современных играх, но реального влияния не заметно), сглаживание прозрачных текстур – отключено, сглаживание – гамма-коррекция – включено. Остальное – по умолчанию.
— Включение масштабируемых текстур: нет
— Фильтрация текстур – анизотропная оптимизация образцов: вкл
— Фильтрация текстур – качество: высокая производительность
— Фильтрация текстур – отрицательное отклонение уровня детализации: разрешить
— Фильтрация текстур – трилинейная оптимизация: вкл
2) Оптимальный режим:
— Включение масштабируемых текстур: билинейная
— Фильтрация текстур – анизотропная оптимизация образцов: вкл
— Фильтрация текстур – качество: качество
— Фильтрация текстур – отрицательное отклонение уровня детализации: привязка
— Фильтрация текстур – трилинейная оптимизация: вкл
— Включение масштабируемых текстур: трилинейная
— Фильтрация текстур – анизотропная оптимизация образцов: выкл
— Фильтрация текстур – качество: высокое качество
— Фильтрация текстур – отрицательное отклонение уровня детализации: привязка
— Фильтрация текстур – трилинейная оптимизация: выкл
Intel Pentium Dual Core E2160 1.8@3.2GHz (356×9), FSB 1424MHz, 1.4625V
Cooler Master Hyper TX2
Gigabyte GA-P31-DS3L
GeForce 9600GT Palit без разгона (не гонится, и всё тут… )
2Gb DDR2 Samsung (Dual Channel – 2x1Gb) 800@890MHz 6-6-6-18 1.8V
ForceWare 174.74 RUS
Windows XP SP2 Pro
Режим “Производительность”
Average: 37.89
Min: 21.48
Max: 44.83
Режим “Оптимальный”
Average: 37.85
Min: 21.06
Max: 44.59
Режим “Качество”
Average: 37.84
Min: 22.89
Max: 44.39
Да… Уж очень маленькая разница получается во всех показателях. Но вот самое интересное: в качественном режиме минимальный FPS немного выше, чем в остальных! Но почему? Может, бенчмарк глючит? Не видел я таких низких показателей минимального FPS на протяжении трёх прогонов теста после первого. Может, виновата подгрузка текстур? Но ведь уже во втором прогоне всё полностью загружено. Ерунда какая-то… Но если отбросить этот глючный показатель, то можно заметить, что производительность разных режимов почти не отличается. Да и качество тоже. Crysis и без всяких настроек драйвера – красивая игра.
Режим “Производительность”
Average: 34.72
Min: 21.41
Max: 43.89
Режим “Оптимальный”
Average: 34.77
Min: 24.40
Max: 43.82
Режим “Качество”
Average: 34.93
Min: 23.89
Max: 43.96
И опять то же самое: разница – в пределах погрешности измерений, а при повышении качества минимальный FPS снова растёт. Почему? Непонятно…
— FRAPS-тест: уровень Recovery
Режим “Производительность”
Average: 33.330
Min: 31
Max: 37
Режим “Оптимальный”
Average: 33.294
Min: 30
Max: 36
Режим “Качество”
Average: 32.963
Min: 30
Max: 35
Да. Разницу назвать огромной язык не поворачивается…
II) Call of Duty 4
Режим “Производительность”
Average: 58.860
Min: 44
Max: 99
Режим “Оптимальный”
Average: 57.350
Min: 41
Max: 77
Режим “Качество”
Average: 57.689
Min: 39
Max: 74
Что касается разницы между средними FPS, то она вполне входит в рамки погрешности измерения, особенно если учесть то, что тестирование произведено при помощи FRAPS. А вот минимальный и максимальный показатели FPS стабильно падают при повышении качества. Да и общий комфорт в игре снижается. Что ж, есть приложения, в которых настройки драйвера действительно влияют на производительность. А вот влияние на качество можно назвать минимальным: нужно вглядываться, чтобы заметить разницу. Где заметны оптимизации? В основном, в играх с высоким разрешением текстур. Заметны границы мип-уровней, когда текстура под ногами прорисована чётко, а чуть дальше – мутнее, и видна граница между чётко и не очень чётко прорисованной текстурами. А в качественном режиме этой границы не видно, при этом чёткость даже слегка падает. Кстати, найти эти границы мип-уровней не так уж и просто, а во время игры эти тонкости специально разглядывать не будешь. Вот, к примеру, сравните качество текстуры в игре
Serious Sam 2 (сверху — режим “Производительность”, снизу — режим “Качество”).
Разница весьма незначительна. В производительном режиме чётко выглядит нижняя половина картинки, а верхняя часть слегка замылена. В качественном режиме вся текстура выглядит равномерно, но менее чётко. Это я ещё долго искал место, где заметна разница. Часто она вообще почти отсутствует. Кстати, раньше в драйверах NVIDIA производительный режим выглядел гораздо хуже.
Режим “Производительность”
Average: 79.871
Min: 69
Max: 116
Режим “Оптимальный”
Average: 79.689
Min: 67
Max: 89
Режим “Качество”
Average: 77.225
Min: 64
Max: 89
Средние FPS опять почти не различаются, но вот на минимальный показатель стоит обратить внимание: с повышением качества он действительно меняется в худшую сторону. А вот почему максимальный FPS так снизился с переходом именно в оптимальный режим, хотя в качественном режиме разницы по сравнению с оптимальным уже нет? Может, я неправильно измерял в самой игре? Ладно, оставим этот вопрос, отбросим максимальные значения. Но вот что важно: разница в производительности действительно заметна во время игры, если измерять FRAPS’ом. Что ж, не зря всё-таки есть настройки в драйвере.
Режим “Производительность”
Min – 59
Max – 307
Average – 123
Режим “Оптимальный”
Min – 59
Max – 306
Average – 123
Режим “Качество”
Min – 59
Max – 302
Average – 122
Да… Разница находится в пределах погрешности, чего точно не заметишь в игре. Производительность во всех режимах отличная, а потому ставим режим “Качество” и играем без проблем. Только вот разницу в качестве картинки приходится искать под микроскопом, а когда играешь, не замечаешь этих нюансов. Настройки графики в самой игре – другое дело. И качество заметно меняется, и скорость…
V) The Elder Scrolls IV: Oblivion
Режим “Производительность”
Average: 59.835
Min: 49
Max: 77
Режим “Оптимальный”
Average: 57.495
Min: 47
Max: 73
Режим “Качество”
Average: 49.798
Min: 44
Max: 62
Вот! Oblivion действительно можно ускорить, перейдя в производительный
режим. Ускорение заметно даже без FRAPS. Нет, не всегда настройки драйвера – пустой звук… Что самое приятное, эти настройки не оказывают значительного влияния на качество графики, поэтому лучше выставить настройки с упором на производительность.
Режим “Производительность”
115.7 FPS
Режим “Оптимальный”
114.9 FPS
Режим “Качество”
112.9 FPS
Снова есть разница, но только ма-а-аленькая…
Режим “Производительность”
Average: 77.052
Min: 61
Max: 97
Режим “Оптимальный”
Average: 75.495
Min: 61
Max: 97
Режим “Качество”
Average: 72.502
Min: 59
Max: 98
Ну вот, опять есть разница в средних FPS, но минимальный FPS снизился только
в качественном режиме. Во время игры разница в производительности различных режимов почти не заметна, но FRAPS её показывает. Впрочем, играть и в качественном режиме приятно. Но если подумать: велика ли разница между всеми этими настройками? Как я уже говорил, весьма незначительна. Кроме того, в производительном режиме текстуры даже слегка более чёткие, так что не таким уж плохим может оказаться такой режим.
VIII) Call of Juarez
Режим “Производительность”
Average: 62.220
Min: 57
Max: 66
Режим “Оптимальный”
Average: 61.983
Min: 56
Max: 67
Режим “Качество”
Average: 59.537
Min: 53
Max: 66
Некоторые изменения среднего FPS наблюдаются, но они слишком незначительны. Минимальный FPS меняется сильнее. Надо сказать, что влияние этих настроек драйвера на производительность в данной игре действительно заметно, особенно с FRAPS. Ещё один плюс в пользу настроек драйвера.
Глоссарий современной 3D терминологии
3D Глоссарий
2D Graphics (2D графика) – Зрительное представление сцен и объектов, описываемых координатами по двум осям x и y, например, высотой и шириной
3D Graphics (3D графика) – Зрительное представление сцен и объектов, описываемых координатами 3-мерного пространства, по осям x, y и z, например, высотой, шириной и глубиной
3D Pipeline (3D конвейер) – последовательный процесс обработки 3D графики, условно разделяемый на три стадии – тесселяцию (tessellation), то есть, создание структурированной модели объекта, геометрическую стадию, и процесс рендеринга.
На стадии тесселяции создаётся описание модели объекта, которое затем конвертируется в определённый набор полигонов (polygons, то есть, многоугольников). Геометрическая стадия подразумевает многочисленные настройки, условия преобразования, освещения и пр. На стадии рендеринга – наиболее важного и критичного относительно качества финального результата, 3D изображение, сформированное из полигонов на геометрической стадии, преобразуется в двухмерное изображение для вывода экран дисплея.
AGP — Accelerated Graphics Port, ускоренный графический порт — специальная 32-битная шина, разработанная для подключения видеокарт. Современные видеокарты чаще всего выпускаются под слот PCI-Express, однако AGP-карты до сих пор широко распространены в силу огромного количества ранее выпущенных платформ под этот тип интерфейса. В своё время шина AGP заменила собой шину PCI, поскольку скорость обмена данными с центральным процессором по шине AGP (66 МГц) вдвое превышает PCI (33 МГц).
На практике версия шины AGP 1x быстро уступила место AGP 2x ввиду недостаточной пропускной способности; затем дебютировани версии AGP 4x и AGP 8x — с пропускной способностью до 2 Гб/с.В процессе совершенствования шины AGP 4x был изменён уровень напряжения питания — вместо 3,3 В начали появляться 1,5 В карты AGP 4x, а в последствии и AGP 8x.
Accelerator (Акселератор) — в общем случае карта или плата, расширяющая возможности компьютера, не обязательно графическая — бывают, например, акселлераторы криптообработки, звуковые, декодирующие. Обычно акселератор является аппаратным решением, самостоятельно обрабатывающим какую-либо информацию, что позволяет более оперативно обработать данные и разгрузить ресурсы центрального процессора. Наиболее популярными нынче можно считать 2D/3D видеоакселераторы, поэтому употребление термина «акселератор» в большинстве случаев по умолчанию подразумевает что речь идёт о видеокарте, если не оговорено что-то другое.
Algorithmic Procedure Texturing (Алгоритмическое процедурное текстурирование) — способ рендеринга изображений с виртуально бесконечной детализацией. Слово «процедурное» означает последовательность действий; текстурирование — это в общем смысле создание изображения с многочисленными свойствами.
Alpha-Blending (Альфа-смешение) — технология создания прозрачных или полупрозрачных объектов или слоёв изображения, что на практике оздачает придание изображению или отдельному пикселю специального атрибута, определяющего его финальный вид: сплошной (не пропускающий свет), невидимый (прозрачный) или полупрозрачный. Текстура, наносимая на объект, может содержать помимо информации о цвете (Red,Green,Blue), информацию о прозрачности (Alpha). В зависимости от величины коэффициента Alpha разные части объекта приобретают различную степень прозрачности, что на практике означает различную степень смешения цвета переднего плана с цветом фона. Добавление информации альфа-смешения в характеристики подготовленных к рендерингу полигонов позволяет создавать такие интересные эффекты и поверхности как стекло, вода и другие виртуально прозрачные элементы. Как правило смешивание цветов перекрываемого объекта и полупрозрачного объекта (с альфа прозрачностью) происходит по формуле (alpha) * (значение цвета объекта с прозрачностью) + (alpha-1) * (значение цвета покрываемого объекта) при 0
Билинейная трилинейная анизотропная что лучше
В последнее время компании, занимающиеся разработкой компьютерной 3D графики, постоянно стремятся увеличить детальность и качество изображения в компьютерной прорисовке. Новые технологии и архитектуры 3D прорисовки безостановочно разрабатываются, улучшаются и модернизируются алгоритмы сжатия для увеличения пропускной способности памяти, претерпевает изменения и архитектура памяти. К сожалению, отрыв передовых идей в 3D графике от обычных ПК довольно велик: реалистичность в современных играх и т.п. сделана с помощью технологий, разработанных 1-2 года назад. Кроме того, мощность обычных ПК очень ограничена, именно поэтому для игр используются довольно простые алгоритмы, о которых мы и расскажем в этой статье: это текстурирование, и более подробно — фильтрация текстур.
Имея идеальный компьютер с производительностью, намного превосходящей существующую, мы бы получили возможность отображать в реальном времени картинку с очень реалистичной прорисовкой. Можно было бы просчитывать миллионы, даже миллиарды пикселей, для каждого их них задавать свой собственный цвет — в таком случае картинку просто нельзя будет отличить от реального видео. Но к сожалению, пока это только мечты: для существующих компьютеров пока что слишком сложно одновременно обрабатывать прорисовку объектов при движении, и т.п. Кроме того, пока что катастрофически не хватает пропускной способности памяти. Для обеспечения хорошего качества в 3D приложениях и разрабатываются технологии, упрощающие процесс прорисовки изображения.
Одной из наиболее используемых технологий, упрощающих расчет изображения при достаточно хорошем качестве, является текстурирование. Текстура — это 2D изображение, накладываемое на 3D объект, или какую-либо поверхность. В качестве примера возьмем следующую ситуацию: вы — разработчик, и необходимо, чтобы пользователь увидел кирпичную стену. Создается 3D каркас стены, причем можно выделить кирпичи отдельно. Теперь берем 2D картинку кирпича и накладываем ее на кирпич в 3D каркасе, и так — всю стену. В результате получилась нормальная 3D стена, причем графическому чипу нет необходимости прорисовывать и просчитывать каждый пиксель — он просчитывает координаты 3D каркаса, к которым привязано 2D изображение.
Есть еще одно понятие в текстурировании, о котором следует рассказать. При наложении 2D изображения, оно разбивается на множество цветных фрагментов. Это сделано для масштабирования объекта — текстура 2-х мерная, а 3-х мерный объект при приближении или удалении должен меняться. Текстура для сохранения реалистичности и качества также должна меняться. Итак, текстура разбивается на множество цветных фрагментов, которые называются тексели (texels — texture elements). В дальнейшем, к примеру, при приближении к объекту, нет необходимости заново загружать новую текстуру: берутся тексели из оригинальной текстуры и увеличиваются. Конечно же, качество теряется, но оно остается на достаточно высоком уровне, кроме того, при таком подходе значительно разгружается графический процессор и память.
Движение — это характеристика всех отображаемых объектов; даже если сам объект неподвижен, он все равно меняется при изменении угла зрения персонажа вследствии его движения. Поэтому текстура, помещенная на объект, также должна двигаться — это влечет за собой некоторые осложнения и дополнительную обработку. А что если мы смотрим на объект под каким-то углом, к примеру, на пол? Пол может занимать большую площадь, и для сохранения реалистичности, чем дальше он от нас, тем меньше его составляющие (к примеру, плитка). Для обеспечения этого, текстура должна определенным образом уменьшаться. К сожалению, простое изменение разрешения текстур, может повлечь за собой довольно неприятный эффект, когда одна текстура визуально как бы сливается с другой. Другой неприятный эффект может возникнуть, если тексель больше размером, чем требуемое количество пикселей. Это происходит, когда смотришь на текстуру, находящуюся на очень большом расстоянии. Обе ситуации возникают при применении традиционного сглаживания. А вот и реальные примеры этих случаев:
Для смягчения таких ситуаций и был создан mip-mapping (мип-маппинг). Эта технология работает очень просто: оригинальная текстура генерируется в различных ситуациях таким образом, чтобы корректно отображать текстуру на разных расстояниях и при разных углах зрения. При приближении к объекту показывается текстура с более высоким разрешением, а при отдалении — с низким. Таким образом, mip-mapping улучшает качество изображения и уменьшает неровности. Ниже представлены те же картинки, только со включенным mip-mapping:
Заметили улучшение качества? Оно особенно заметно на второй картинке с желто-красным рисунком. Обратите внимание: улучшилось качество не только дальних текстур: ближние также выглядят гораздо лучше. В целом изображение с mip-mapping смотрится гораздо лучше, чем без него: отсутствуют многочисленные искажения и искривления, заметные при обычном отображении.
Точечное текстурирование является, пожалуй, основным видом текстурирования. При точечном текстурировании выбиравется отдельный фрагмент текстуры (тексель) и используется, как цветовое значения для пискелей. Дело в том, что этот способ влечет за собой некоторую неаккуратность и как следствие этого, ухудшение качества изображения. Такое изображение при существующих стандартах уже просто неприемлемо. Ниже представлена текстура, которая была обработана точечным текстурированием (нижняя часть картинки). Картинка отображает теоретическое ухудшение качества при выборе слишком большого размера текселя.
С выбором слишком
большого текселя
Билинейная фильтрация (Bilineat Filtration)
Другой метод текстурирования — это билинейная фильтрация. Принцип действия этого метода текстурирования очень похож на точечный метод, но в отличие от него для выбора цвета пикселей используется не полное изображение, а блок из 4 текселей. Таким образом, повышается аккуратность при выборе цвета пикселя и достигается лучшая прорисовка отдельных мелких деталей изображения.
На этой картинке пример прорисовки изображения, используя билинейную фильтрацию и mip-mapping.
Второе рождение билинейная фильтрация получила в виде трилинейной фильтрации, принцип действия которой точно такой же, но используется улучшенный алгоритм расчета, который увеличивает точность прорисовки. Трилиниейная фильтрация, как и билинейная, использует блоки из 4 текселей, также как и в билинейной фильтрации, нормализуется изображение, затем нормализуется изображение из граничного блока из 4 текселей. Последним этапом производится анализ границы обоих блоков, в результате которого исправляются возможные ошибки и несоответствия на границе этих 2 блоков. В билинейной фильтрации достаточно часто можно увидеть линии, возникающие на границах блоков, которые исчезают при использовании трилинейной фильтрации. Кроме того, при использовании трилинейной фильтрации лучше убираются искажения и неровности при движении и при изменении угла зрения. Ниже показана схема использования трилинейной фильтрации, и она в действии.
Следует обратить внимание, что некоторые дефекты на приличной дистанции возникают даже при использовании трилинейной фильтрации. Это происходит оттого, что она изначально разрабатывалась для уменьшения искажений между mip-map уровнями.
Изображение получается очень качественно только при более прямых углах зрения, при реальной же прорисовке, геометрические формы объекта могут быть нарушены. Посмотрите на картинку от SGI:
Анизотропная фильтрация (Anisotropic filtering)
Форма текстурированных объектов как при билинейной, так и при трилинейной фильтрации может искажаться, т.к. обе эти фильтрации являются изотропными — изображение фильтруется в определенной форме — в форме квадрата. Большинство же формируемых объектов не подходят под эту определенную и неизменную форму: для их качественной обработки необходимо использовать другой тип фильтрации — анизотропный. Анизотропия состоит из нескольких слов на латыни и означает буквально «Ани» — не, «изо» — определенная форма и «тропия» — модель — т.е. модели неопределенной формы. Название этой технологии отражает ее техническую реализацию. Анизотропная фильтрация обычно оперирует не менее чем 8 текселями, во все стороны mip-map уровней, при этом используется модель неопределенной заранее формы. В результате убираются шумы и искажения объектов, а изображение в целом получается более качественным.
Сравните две картинки: на одной использовалась анизотропная фильтрация 16-текселей, с помощью которой исчезли искажения между mip-map уровнями и шум изображения, на второй картинке анизотропная фильтрация была выключена.
Обратите внимание на дальние дистанции изображения: различия между анизотропной и изотропной фильтрацией очевидны. Качество текстуры при анизотропной фильтрации даже на дальних дистанциях остается схожей с оригинальным; при изотропной фильтрации же видна тенденция в «сглаживанию» изображения, в результате теряется качество. Анизотропная фильтрация, как и трилинейная, уменьшает неровность текстур. Но при использовании анизотропной фильтрации качество получается все равно лучшим, т.к. для используется гораздо большее количество блоков для сравнения. Вот еще один пример, показывающий анизотропную фильтрацию в действии:
Долгое время графические платы потребительского уровня не показывали то качество изображения, которое возможно при использовании анизотропной фильтрации. С появлением таких графических чипов, как NVIDIA GeForce2 и ATI Radeon, стало возможным использование анизотропной фильтрации, которая аппаратно анализирует блоки из 16 текселей. Видеокарты GeForce3 и Radeon 8500 используют уже 32 тексельную анизотропную фильтрацию. Картинка ниже показывает изображение, прближенное к тому, которое будет получено с помощью профессиональной 64 тексельной анизотропной фильтрации:
В ближайшем будущем анизотропная фильтрация будет применяться все чаще и чаще. Для графических чипов следующего поколения уже разрабатываются новые технологии устранения неровностей и угловатостей объектов. В скором будущем мы увидим изображение, обрабатываемое используя мультитексельные блоки. Появятся видеокарты, способные аппаратно поддерживать анизотропную фильтрацию, использующую 128 тексельные блоки. Качество изображения при этом намного улучшится, а производительность — увеличится.