Анизотропная фильтрация не так проста как вам казалось
Решил оформить историю в виде отдельного поста, после того как написал достаточно развернутый ответ на пост одного из пользователей "Фикс нагрузки в меню Cyberpunk 2077".
Возможно это не поможет конкретно в случае с киберпанком, но сможет пригодится вам в будущем.
Итак, история про анизотропную фильтрацию, которая приключилась со мной на днях и научила кое-чему.
Проблема была такая: В Assassin's Creed Unity даже на максимальных настройках очень мутные текстуры мира, если они находятся даже под небольшим углом.
Решение казалось простым: как обычно форсировал анизотропную фильтрацию 16x через панель управления Nvidia, т.к. обычно это добавляет текстурам объектов находящихся под углом чёткости, зато на производительность никак не влияет, и вот какой вышел результат:
Те же изображения проулка, с ползунком для сравнения – см. например качество текстур плитки на полу.
Разница нагрузки на видеокарту в игровом процессе 1% (было 59% стало 60%).
Зато какая большая разница в картинке! Как будто настройки текстур подняли с низких на высокие – это хорошо, то что и нужно было.
Но гораздо позже я заметил странную вещь. По сравнению с тихой работой в игровом процессе, комп готовится на взлёт в любом меню игры – в любых менюшках игры GPU молотит нагрузку прямо по полной, на 90-100%. Соответствующий нагрев и шум прилагается.
А ведь в меню игры заходишь часто и порой на продолжительные моменты, например прочитать базу данных по достопримечательностям, персонам, посмотреть карту местности, обновить навыки, и так далее.
Весь вечер искал в чём дело, откуда такая нагрузка? Докатился даже до того, что настроил с помощью RivaTuner ограничение кол-ва кадров с 60 до 30 по горячей кнопке, чтобы хоть как-то держать в узде нагрузку и шум на пустом месте, пока читаю или смотрю что-то в менюшках игры.
Еще удивлялся – как тогда игра работала в менюшках на выходе в 2014 году на железе тех лет, если даже в 2022-м на RTX 3060 там в 1080p почти под 100% колеблющаяся нагрузка? Что получается, на более слабых видеокартах того времени наблюдалось слайд-шоу в меню?
В интернете не находилось ничего подходящего, в чём может быть дело, и чем можно помочь ситуации, только стандартные жалобы 8-летней давности на оптимизацию игры в целом.
А потом я вспомнил, что ранее форсировал анизотропную фильтрацию, и решил ради теста её отключить.
Внезапно обнаружилось, что с настройками фильтрации текстур по умолчанию, различные меню игры дают совсем небольшую нагрузку.
Вот тут я и удивился. И понял кое-что интересное.
В менюшках AC Unity очень много геометрических фигур, плоскости которых располагаются под углом.
И несмотря на то что выглядят эти фигуры непримечательно, и что обычно на ПК, в отличии от консолей, анизотропная фильтрация даётся "бесплатно" по производительности, из-за сравнительно большой ширины шины GPU, в данном случае кол-во объектов ожидающих выборки в меню игры оказалось столь велико, и настройка фильтрации столь высока (16-кратная), что нагрузка на видеокарту в меню вырастает примерно в два раза.
Те же изображения из меню, с ползунком для сравнения – разницы в качестве никакой, но см. нагрузку в верхнем правом углу.
В итоге, протестировав разные варианты форсирования анизотропной фильтрации для AC Unity, я нашёл компромисс, который и улучшает картинку, и при этом почти не сказывается на нагрузке в меню – это AF 4x.
В игровом процессе это всё тот же 1% разницы нагрузки, при достаточно большой разнице в четкости – те же изображения проулка что выше, с ползунком для сравнения.
Нагрузка в меню от 4-x кратной анизотропной фильтрации текстур уменьшилась до вменяемых 12% доп. нагрузки – сравнение в меню.
Теперь вы тоже знаете, что анизотропная фильтрация текстур на ПК может сильно влиять на нагрузку, если в игре использовано много геометрических текстурированных объектов.
И кстати, тем сильнее это может быть выражено, чем уже шина памяти у вашей видеокарты.
ㅤ
Спасибо за внимание, если вам показалось полезным – можете оценить запись вашим боярским лайком.
Пука гейминг
Ну да, тут мы можем, если захотим, одной простой опцией, например, улучшить качество текстур.
Как дела у CP2077 на PS4 или как там Gotham Knight поживает?
...для пытливых умов
Может проблема в том, что через драйвер анизотропия анизотропирует всё подряд? Лучше погугли, в мб конфиге можно включить нормально.
Анизо чтооооо нааахой. Вырубал всегда. 900p, FXAA и 60fps обеспечены
Ебал эти RTX - дайте мне Core2Duo и запущу на нем хоть спайдермена
Да, я сошедший с ума от нищеты некрофил-мехромант
Кавоо, я еще на 8500гт анитрипку не выключал, а тут на современных вк в 4 ставить?
Сам очень удивился.
он не в самой игре её включил, а через панель нвидии. По сути, принудительно накатил её на все 3d элементы игры.
Один вопрос - а с чего ты взял, что в меню больше наклонных треугольников, чем в игровой сцене. Сдается мне, что ты на ложном пути, и просто выдумал себе теорию. Попутно предлагаю вспомнить повышенную нагрузку в меню Ведьмака, God of War и еще куче игр, где консоль или видеокарта идут на взлёт, но никаких наклонных текстур там нет, а значит и анизотропка ни при чем.
Еще обращаю твоё внимание на то, что чел в посте про Киберпанк говорит о нагрузке на процессор, а не видеокарту.
Не помню, чтобы в этих играх нагрузка повышалась каждый раз, когда игровой процесс прерывается посещением инвентаря, журнала и прочих.
Да тьма игр, где в меню прям дикая нагрузка на видяху, в игре ниже при этом. А анизотропная фильтрация для видео довольно лёгкая процедура.
В меню Ведьмака же нет вертикалки, если я правильно помню. Ещё бы видюха на взлёт не шла, когда обрабатывает 1500+ фпсиков.
Да, там вероятнее всего другое. Просто похожая ситуация с меню, нагрузкой и шумом произошла у меня как раз на днях, вот и вспомнилось сразу.
вот я сколько спорил с ламерами которые пишут про мыло, там где у меня его нет. а у них всё мыло да мыло. а эти ламеры даже настроить не могут дрова и всё плачут и плачут. мне вот по*уй шумит там, загрузка увеличилась. Собственно для этого и покупается видеокарта - для работы на макс когда этого требует игра или софт. Ещё и привязку надо ставить
Странный подход к оборудованию, это как купить машину и всегда гонять 250 км/ч, типа "ну а чо, едет же! Я ж заплатил! Уебусь навседеньги".
При выборе форсирования анизотропки в панели Nvidia, опция "отрицательного отклонения УД" автоматом устанавливается на "Привязку" – это легко проверить.
Я мб чего-то не понимаю, но режим "Высокая производительность" в Фильтрации текстур - это явно противоположно настройкам "Качество/Высокое качество" и настройке под максимальное "не мыло" соответственно, не?
хз я прошел его меньше месяца назади использовал максимально доступные настройки и анизатропка у меня точно была как у тебя включена и играл через DLSS степень, но вот проблем в меню точно не было, сидел читал все подряд.
Возможно у тебя некое сочетание настроек или версия драйвера дали такой эффект.
играл на 2060
через DLSS степень
У меня просто видеокарта достаточно шумная, что я сразу замечаю когда нагрузка к 80% идёт, а когда к 100% – тогда я обычно ухожу в бомбоубежище.
p.s.
Люди, не покупайте игровые видеокарты в исполнении MSI Ventus 2x, обращайте внимание на размер радиатора и его соответствие мощности GPU.
еще такой момент с анизотропкой - если в 1080п для норм результата нужна х8-х16 анизотропка, то в 4к хорошо выглядит и х4 анизотропка, при этом дает до 5% прироста фпс относительно х16, что в 4к лишним не будет.
Логично что если у тебя плотность пикселей х4 то если добавить х4 антизотропку то будет норм.
На самом деле, тут всё дело в менюшке AC:Unity. Я сам с этом столкнулся, когда форсировал из настроек панели управления Nvidia сглаживание (внутриигровое сглаживание так себе работает) — так тоже менюшка заставляет карту выть и даёт нагрузку 100%
Это какая-то чушь. Анизотропка вообще практически никак не влияет на производительность лет уже как 15. Хоть усри ты кадр мелкими объектами. У меня на 1080 Ти просто умюпирается в лимит в 144фпс и карта отдыхает до 48-50 градусов.
Тут какая-то другая ересь у тебя, имхо. Хотя, честно, Юнити у меня нет (есть Одиссея и Вальгалла), но в теории все обстоит так.
Если не веришь, и готов проверить – поставь хоть пиратку (если даже в uplay мало ли нет, её же раздавали бесплатно), и проверь сам. Мне тоже любопытно будет взглянуть что у тебя выйдет.
Это юбики, у них и в геймплее Р6 siege максимальная анизотропка жрала фпс на ультрах.
Анизотропка - самый загадочный элемент оптимизации лично для меня. Во многих играх её в внутриигровом меню можно настроить - только на фпс она не влияла даже во времена gt 9600 512mb.При этом на консолях золотой стандарт почему-то х2-х4, насколько я понимаю. Неужели даже для ps4 это сложная технология? Да, в посте написано, почему так, но для пекаря это немыслимо.
Спасибо. Попробую. Я в CP2077 на патче 1.6 просто сгорел от того, что при входе в меню игра начинает дико просаживать FPS и лагать. Откат на 1.52 более менее решил проблему, играбельно теперь. Но все равно иногда встречаюсь с проявлениями. Более того, FPS , frametime улучшился блять, после даунгрейда патча. Почему ? А хуй его знает. Великий польской говнокод.
Производительность после патча могла понизится т.к. они пофиксили некоторые ранее нерабочие настройки графики.
Соответственно если они были заданы на максимум, то после патча они как бы "включились" на полную мощь, как и должны были работать.
Подробнее кажется было в обзоре от Digital Foundry.
А что у тебя за железо и разрешение экрана?
Часто убрать мутность помогает отключение настройки "глубина поля зрения" (deapth of field).
В данном случае не было проблем с фокусировкой, а были именно с текстурами.
Если приложенные скриншоты из записи открыть на ПК, в полный экран – сразу будет понятно о чем речь.
Я тут дрова на 3070 обновил и у меня в war thunder вентиляторы тоде на взлёт шли, даже с вертикальной синхрлнизацией на 60, долго думал в чем дело, даже на средних настройках был жесткий шум, пока не зашёл в Geforce Experience и не нажал "оптмизировать", эта прога там выставила какие то свои настройки и вот снова тишина, gpu не греется больше 60 градусов, hot spot максимум 75 гр.
Автонастройкам GeForce Experience не доверяю – например, в AC Unity оно мне предлагает включить мыльное и очень требовательное TXAA сглаживание, вместо FXAA которое в этой игре намного чётче и ест мало почти ничего.
Хех. В Таркове есть настройка ограничения фпс отдельно для меню и для игры.
И всегда думал что в менюхах вот такие "уд элементы" на фоне - просто 2д картинка, а не полноценная 3д сцена..
В COD Cold War и других ближайших колдах тоже есть, только там даже ограничение кадров в два раза не особо помогает от майнинга в меню :D
Интересно на амд в дровах работает это, там есть переключения, но выбора x4, x8, x16 нету.
Все есть, но работает только в играх на dx9 -__-
Меня интереусет такой момент:
Есть условно Rdr 2 и в её настройках имеется Анизотропная фильтрация выставленна на 16x , а есть анизотропная фильтрация в панели управления Nvidia выставленная на 8x.
Вопрос : Получается , что при таких настройках анизотропная будет 8x и нужно её отключить и в игре тогда будет задействовано 16x ?:)
Не будет ли двойной нагрузки на видюху или типа того, когда 8x в панели нвидиа и в самой игре 16x?
И ещё вопрос , в панели нвидиа есть также сглаживание и оно у меня установлено 4x, быть может этот параметр тоже отключить и использовать лишь в самой игре ?
Вот Пк блин со своими настройкам :)) Ранее не задумывался над этими моментми с фильтрацией в панели управления и самой игре , а теперь чёт думаю надо бы узнать :) Просто как то посмотрел настройки панели управления на ютубе .
Для RDR2 я бы не стал использовать 4x сглаживание из панели, т.к. это скорее всего будет пытаться использовать MSAA, и если оно вообще сработает, то даст большое воздействие на производительность.
Лучше использовать то что в RDR2 встроенное.
Если не хватает - попробовать добавить Reshade со SMAA или FXAA фильтром.
По анизотропке:
Если AF есть в игре, и оно работает нормально, лучше конечно использовать его.
Форсировать AF из панели лучше только в том случае когда в игре его вообще нет, или если оно сделано плохо. Например если выбираешь в игре высокое значение, а поверхности под наклоном все равно мыльные.
Думаю, что значение AF в панели Nvidia перезаписывает значение в игре.
Они не умножаются, и не складываются.
По сглаживанию:
Сглаживание в панели Nvidia есть двух видов:
1. FXAA из панели полноэкранное, форсирование - накладывается поверх всего изображения игры включая интерфейс. Как решейд фильтр.
Может быть полезно чтобы убрать лесенки в тех играх, где они слишком сильные и встроенное сглаживание в игре не помогает.
Его не стоит использовать, если в игре уже используется своё FXAA и оно работает, иначе будет двойное наложение - одного FXAA как правило достаточно чтобы полностью реализовать его возможности, второе поверх только мыла добавит.
2. MFAA / MSAA (избыточная выборка) из панели - в них я сам ещё не до конца разобрался.
Знаю лишь то, что такое сглаживание в панели Nvidia может работать только в ограниченном списке игр и режимов DirectX.
И даже там где MFAA из панели включается и работает - надо быть осторожным, потому что оно может вызвать визуальные глюки теней на наклонных поверхностях - они становятся квадратными. Такое как раз в AC Unity наблюдал.
А MSAA (избыточная выборка) из панели работает кажется только в старых играх.
"Анизотропная фильтрация" Звучит пиздец как просто.
Звучит сложно, согласен. Но сама опция простая – чем больше Х (2-4-8-16), тем меньше размытия на текстурах под углом.
Комментарий недоступен
Спасибо. Интересное расследование. Горжусь такими пк боярами
Довольно интересно!
Уже больше десяти лет бездумно ставил на x16 (кроме Minecraft), ибо ещё тогда фильтрация давалась бесплатно, и не предполагал, что могут быть такие подводные камни!
Спасибо, даже не думал об этом!
Попробуй 4К через DSR, юнити ещё чётче станет без аляйзинга.
В 1080p текущая нагрузка на rtx3060 ~65%, при 60 кадрах.
В 4K в четыре раза больше пикселей чем 1080р, значит не потянет, или будет от силы 30 кадров.
У тебя видеокарта в игровом процессе всегда на максимум не загружена, или почему она у тебя именно в меню при настроенной анизотропной фильтрации на взлет пошла? Я бы наверное и усом не повел, учитывая, что всегда на максимум шпарит. Ну, то есть даже если есть запас в родном разрешении, включаю DSR и получаю повышенную четкость и улучшенную компенсацию TAA.
В игре включена вертикальная синхронизация, которая ограничивает кол-во кадров до максимум 60, поэтому когда 60 кадров есть дальше карта отдыхает.
А обратил внимание на аномальную нагрузку в меню из-за того что у меня карта раньше шумела при нагрузке более 75%.
Сейчас уже больше не шумит, т.к. сделал андервольт с помощью одного доброго человека в этих комментариях, и настроил ограничение вентиляторов.