Не працює масштабування в іграх. Графічні налаштування в комп'ютерних іграх - докладний аналіз. Для чого слугує масштабування ДП

Масштабування відповідає за те, як ваша гра виглядатиме на екранах різних розмірів. Ми можемо змусити гру масштабуватись під кожен екран автоматично під час стадії передзавантаження (preload), щоб нам не довелося хвилюватися про це у майбутньому.

Масштабування

У Phaser є спеціальний об'єкт scale, який має кілька корисних методів і властивостей. Змініть функцію preload() так, як показано нижче:

Function preload() ( game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL; game.scale.pageAlignHorizontally = true; game.scale.pageAlignVertically = true; )

scaleMode має кілька опцій, які визначають, як елемент може бути використаний для відтворення графіки через скрипти (зазвичай використовується JavaScript). Наприклад, його можна використовувати для відтворення графіків, робити композиції фото або навіть виконувати анімації. Ви можете (і повинні) дати альтернативний зміст всередині блоку . Цей контент буде рендеруватись в обох браузерах, у старих які не підтримують canvas і в браузерах з відключеним JavaScript."> масштабуватиметься:

  • NO_SCALE – нічого не масштабувати.
  • EXACT_FIT - масштабувати з повним заповненням порожнього місця вертикально та горизонтально, не дотримуючись співвідношення (aspect ratio).
  • SHOW_ALL - масштабує гру, але зберігає співвідношення, так що картинки не будуть спотворюватися, як у попередньому значенні. Можлива наявність чорних смуг з обох боків екрана, але ми всі можемо з цим жити.
  • RESIZE - створює Елемент може бути використаний для малювання графіки через скрипти (зазвичай використовується JavaScript). Наприклад, його можна використовувати для відтворення графіків, робити композиції фото або навіть виконувати анімації. Ви можете (і повинні) дати альтернативний зміст всередині блоку . Цей контент буде рендеруватись в обох браузерах, у старих які не підтримують canvas і в браузерах з відключеним JavaScript."> з доступними шириною та висотою, так що ви можете поміщати об'єкти в гру динамічно; це розширений режим (advanced mode).
  • USER_SCALE - дозволяє робити динамічне масштабування, підрахунок розмірів, масштаб і співвідношення самостійно; знову ж таки це розширений режим.

Два інші рядки коду функції preload() відповідають за вертикальне і горизонтальне вирівнювання елемента Елемент може бути використаний для малювання графіки через скрипти (зазвичай використовується JavaScript). Наприклад, його можна використовувати для відтворення графіків, робити композиції фото або навіть виконувати анімації. Ви можете (і повинні) дати альтернативний зміст всередині блоку . Цей контент буде рендеруватись в обох браузерах, у старих які не підтримують canvas і в браузерах з відключеним JavaScript."> , так що він завжди буде по центру незалежно від розміру екрана.

Зміна кольору фону

Ми також можемо зробити фон нашого елемента елемент може бути використаний для відтворення графіки через скрипти (зазвичай використовується JavaScript). Наприклад, його можна використовувати для відтворення графіків, робити композиції фото або навіть виконувати анімації. Ви можете (і повинні) дати альтернативний зміст всередині блоку . Цей контент буде рендеруватись в обох браузерах, у старих які не підтримують canvas і в браузерах з відключеним JavaScript."> таким, яким захочемо, щоби він не залишався постійно чорним. Об'єкт stage має властивість backgroundColor для цього. Ми можемо змінити значення за допомогою синтаксису CSS для кольорів. Додайте цей рядок після трьох доданих:

Game.stage.backgroundColor = "#eee";

Порівняйте свій код

Ви можете порівняти весь код цього уроку зі своїм і пограти з ним, щоб зрозуміти, як він працює:

Наступне

Ми навчилися масштабувати нашу гру, тому давайте перейдемо до третього уроку і дізнаємося, .

IntegerScaler - безкоштовна програмадля масштабування ігор з цілим коефіцієнтом . Наприклад, у дозволі Full HD(1920×1080) на 4K-моніторі (3840×2160) кожен логічний піксел при цьому виводиться як квадратна група із чотирьох (2×2) фізичних пікселів однакового кольору.

Таке масштабування без втрат якості може бути корисним як для сучасних тривимірних ігор, так і для старих ігор та ігор на основі піксельної графіки ( pixel art). наприклад, ігри "SimCity 2000"(1993) (власна роздільна здатність - 640×480), відмасштабованої до 4K за допомогою IntegerScaler.

Як користуватися:переключіть гру в віконний режимта натисніть Alt + F11 при активному вікніігри. Якщо Alt+F11 для конкретної гри не спрацьовує, зробіть вікно гри неактивним, увімкніть відкладенемасштабування за допомогою Ctrl+Alt+F11 або пункту «Масштабувати через 5 секунд» меню IntegerScaler і знову зробіть вікно гри активним.

Також для усунення розмиття зображень на веб-сторінках скористайтеся розширенням для Firefox та Chrome.

Функціональність

Програма імітує повноекранний режим ігор, запущених у віконному режимі. Відмасштабоване зображення відображається в центрі екрана. Простір навколо зображення заповнюється однотонним тлом (за умовчанням чорним).

Цілочисленний масштабний коефіцієнт, що забезпечує максимальне заповнення екрана, обчислюється автоматично і перераховується при зміні розмірів вікна, що масштабується, при зміні дозволу в грі.

Масштабування не застосовується до розгорнутих ( maximized) вікнам.

Масштабування автоматично вимикається при закритті вікна, що масштабується, а також тимчасово вимикається при згортанні масштабованого вікна або його розгортанні на весь робочий стіл і автоматично вмикається знову при поверненні вікна у звичайний (не згорнутий і не розгорнутий) стан.

Інтерфейс

Інтерфейс програми користувача складається з двох частин:

  • поєднання клавіш (гарячі клавіші) для керування масштабуванням;
  • піктограма в області повідомлень ( system tray) з меню.

Поєднання клавіш

Натискання клавіш Alt + F11 включає масштабування для активного в даний момент вікна. Повторне натискання вимикає масштабування незалежно від того, яке вікно активне.

Натискання клавіш Ctrl + Alt + F11 включає масштабування із затримкою 5 секунд. Це дозволяє включити масштабування навіть в іграх, що блокують обробку сторонніх поєднань клавіш при активному вікні гри: просто натисніть клавіші при неактивному вікні гри і протягом 5 секунд перейдіть на вікно гри. З цією ж метою служить пункт «Масштабувати через 5 секунд» меню програми.

Програма також вимикає масштабування при натисканні клавіш Ctrl + Alt + Delete.

Меню

По клацанню на піктограмі відображається меню, яке дозволяє увімкнути масштабування, переглянути інформацію про програму, перейти за посиланнями на пов'язані веб-сторінки або вийти з програми.

Інтерфейс програми підтримує російська та англійська мовата, мова вибирається автоматично на основі мови інтерфейсу операційної системи.

Автомасштабування

Можливо автоматично застосовувати масштабування до заданим користувачемігор. Кожна гра задається та ідентифікується за допомогою повного шляху до виконуваного файлу (*.exe). Такі шляхи слід вказати кожен на окремому рядку в текстовому файліз ім'ям auto.txt у папці IntegerScaler.

Інтерфейс користувача для редагування цього списку не передбачено, тому слід використовувати сторонній текстовий редактортипу Блокнот Windows. Не рекомендується використовувати національні символи у шляхах до файлів ігор, інакше автомасштабування для відповідних ігор може не працювати.

Параметри командного рядка

Підтримуються такі необов'язковіпараметри командного рядка:

Bg КОЛІР

Перевизначає колір фону, що заповнює простір екрана навколо масштабованого зображення. Підтримувані значення:

  • gray – сірий;
  • white – білий;
  • довільний колір у форматі R,G,B(без пробілів), де R , G і B - цілі числа в діапазоні 0-255, відповідні червоною, зеленою та синьою складовими кольору відповідно, наприклад, 64,128,192 .

За промовчанням використовується чорний фон.

Clipcursor Обмежує область руху вказівника миші клієнтською областю (областю вікна за винятком рамок та панелі заголовків) вікна гри. -resize ШxВЗмінює розміри вікна гри так, щоб клієнтська область (область вікна за винятком рамок і панелі заголовків) вікна мала задані розміри у форматі ШxВ, де Ш і В - потрібні ширина і висота в пікселах відповідно. Наприклад, 1920x1080. Корисно для ігор, що не змінюють розмір вікна у відповідності з внутрішньоігрову роздільну здатність або встановлюють не правильний розмір. -locale МОВА

Перевизначає мову інтерфейсу програми. Підтримувані значення:

  • en - англійська;
  • ru - російська.

За замовчуванням використовується мова інтерфейсу операційної системи, якщо вона російська, і англійська - у будь-якому іншому випадку.

Nohotkeys Запускає IntegerScaler із вимкненням гарячих клавіш (сполучень клавіш). -scale [ЗАтримка]Застосовує масштабування через півсекунди після запуску IntegerScaler (якщо не затримка затримка) або із затримкою, заданою в мілісекундах.

У цьому прикладі фон перевизначається в сірий, мова інтерфейсу - в англійську, відключаються гарячі клавіші і застосовується масштабування через 3 секунди (3000 мс) після запуску IntegerScaler:

IntegerScaler_64bit.exe -bg gray -clipcursor -resize 1920x1080 -locale en -nohotkeys -scale 3000

Параметри можна вказати у полі «Об'єкт»на вкладці «Ярлик»у властивостях ярлика (*.lnk) виконуваного файлу(*.exe). Створити ярлик можна за допомогою пункту "Створити ярлик" контекстного менювиконуваного файлу, що викликається клацанням правою кнопкою миші на файлі.

Параметри вказуються через пропуск після шляху до виконуваного файлу програми. Значення параметра вказується через пропуск після його назви. Порядок вказівки параметрів не має значення. Параметри можна використовувати окремо, незалежно один від одного.

Розрядність

Для роботи програми необхідновикористовувати її версію, розрядність якої (32 чи 64 біт) збігається з розрядністю Windows.

Відмінності від «Екранної лупи»

IntegerScaler вигідно відрізняється від стандартної Windows-програми «Екранна лупа»:

  • відображається лише значна частина вікна - без рамок та заголовної панелі;
  • простір навколо зображення заповнюється чорним кольором, як у повноекранному режимі;
  • зображення автоматично центрується на екрані без потреби точного позиціонування миші;
  • Масштабний коефіцієнт підбирається автоматично для максимального заповнення екрана.

Сумісність із іграми

Інформацію про сумісність деяких ігор з віконним режимом та програмою IntegerScaler див. у таблиці.

Віконний режим

Програма сумісна з переважною більшістюігор, що підтримують віконний (windowed) режим, та не працюєз іграми, запущеними у повноекранному режимі.

Якщо в налаштуваннях гри не передбачено явне перемикання між повноекранним ( full-screen) і віконним режимами, може спрацювати поєднання клавіш Alt+Enter.

HiDPI-режим

Важливо переконатися, що гра працює в HiDPI-сумісному ( DPI-aware) режимі. Визначити це легко: розмір вікна гри в фізичнихпікселі (точки) повинні відповідати дозволу, вибраному в налаштуваннях гри. Наприклад, вікно гри, що працює у роздільній здатності Full HD, при системному масштабі 200% на 4K-моніторі має займати не весь екран, а приблизно 1/4 екрана (1/2 по горизонталі та 1/2 по вертикалі).

Для ігор, формально несумісних з HiDPI, потрібно відключити DPI-віртуалізацію ( DPI scaling) у властивостях виконуваного файлу (*.exe), щоб вікно гри мало правильний розмір і було вільно від розмиття, можливого внаслідок масштабування, яке Windows автоматично застосовує до HiDPI-несумісних програм.

Вимкнути DPI-віртуалізацію для окремо взятої гри можна у властивостях її файлу (пункт «Властивості» контекстного меню файлу).

Windows 10

Пункт "Властивості" → вкладка "Сумісність" → секція "Параметри" → кнопка "Змінити параметри високого DPI" → секція "Перевизначення масштабування з високою роздільною здатністю" → галка "Перевизначте режим масштабування високої роздільної здатності". Масштабування виконується» → пункт «Додаток» списку, що випадає.

Windows 10 (застарілі версії)

Пункт «Властивості» → вкладка «Сумісність» → секція «Параметри» → галка «Перевизначте масштабування високої роздільної здатності. Масштабування виконується» → пункт «Додаток» списку, що випадає.

Windows 7

Пункт "Властивості" → вкладка "Сумісність" → секція "Параметри" → галка "Вимкнути масштабування зображення при високій роздільній здатності екрана".

Миша

Суб'єктивна швидкість руху вказівника миші в іграх, які використовують системнийпокажчик миші може зростати пропорційно масштабному коефіцієнту.

Режим адміністратора

Для масштабування ігор, запущених від імені адміністратора, IntegerScaler також слід запускати від імені адміністратора.

Aero у Windows 7

Для роботи з масштабуванням у Windows 7 необхідно, щоб був включений режим Aero ( DWM composition). Програма автоматично намагається увімкнути Aero, якщо його вимкнено. Windows 8 і вище це не стосується – там функція DWM compositionзавжди включена.

Попередні версіїдоступні через історію версій (див. нижче).

Системні вимоги

  • Windows 7+ (32/64 біт).
  • Програма не вимагає інсталяції або додаткових бібліотек.
Відгуки
  • Класна штука давно хотів подібну можливість.
    Андрій
  • Відмінна річ, що дійсно малює один піксель гри в 4 моніторних.
    Джек Алігатор
  • Finally I can easily play my games in FHD on my UHD monitor без gettting any headache. Існують кілька ходьби плавно з accelerated 3D-Games як Anno 1440, які можна їздити в UHD, але з величезними tiny menus, і в FHD курс блакитного тексту. Це seems to run very well, не even any performance issues so far. Thank you very much!
    Passatuner
  • Thanks a lot! Works, perfectly and even scales by amount times compared to my desktop resolution just to be able to fit the screen as much as it can without breaking aspect ratio! Doom 2 now finally feels as it should on a big screen! Love those huge pixels.
    HiCZoK
  • So useful in preserving detail in sprite-based games when displaying at higher resolutions. Amazing software, ви є великим роботою для людей, які мають в будівництві scaling of displays/gpus.
    Daniel
  • IntegerScaler є дійсно impresive, I've been looking for app те, що це ця річ на сьогодні.
    Ben
  • Works really well and the games do look awesome!
    Simone
Огляд у Canard PC Огляд IntegerScaler опубліковано у випуску №395 (червень 2019 року) французького паперового журналу «Canard PC». Див. також
  • « » - стаття про сутність питання, потенційні та часткові рішення і прогрес.
  • - розширення для Firefox, що вимикає розмиття у зображень, що відображаються з цілим масштабом.
  • - виправляє розміри адресного рядка та поля пошуку у Провіднику Windows 7 при масштабі понад 188%.
Історія версій 2.11 (2019-12-09)
  • Підтримка зміни розмірів вікна гри та обмеження області руху вказівника миші за допомогою параметрів командного рядка -resize та -clipcursor відповідно.

Якщо зайти в налаштування драйвера відеокарти AMD Radeon, то в розділі параметрів дисплея можна виявити опцію "Масштабування ГП". У Nvidia до речі теж є ця опція, просто називається трохи інакше.

За замовчуванням дане налаштуваннямайже завжди включена. Але навіщо вона потрібна і коли її потрібно включати?

Навіщо служить масштабування ДП?

Ця опція потрібна для автоматичного підстроювання роздільної здатності зображення, що виводиться на монітор тим чи іншим додатком.

Наприклад, коли ви запускаєте ту чи іншу гру, а за замовчуванням у ній виставлено дозвіл і співвідношення сторін, що не підтримується вашим монітором, то драйвер відеокарти з увімкненою опцією масштабування на рівні графічного процесора сам виправить цю ситуацію і максимально оптимізує виведення зображення, щоб не тільки не з'являлося , але і щоб не було чорних смуг з обох боків екрана.

Коли потрібно вмикати масштабування ГП?

Робити це потрібно в тих випадках, коли спостерігаються проблеми із запуском ігор, коли на монітор подається сигнал або якщо картинка на моніторі не на

На сайті PC Gamerз'явився цікавий розбір графічних налаштувань комп'ютерних іграх, де докладно розказано про всі популярні інструменти, фільтри та механізми обробки зображення. Ми переклали його російською мовою, щоб ви могли самі налаштовувати свої ігри, позбавлятися лагів і милуватися красивою графікою.

Отже, сьогодні ми з вами розберемося, що означають ті чи інші графічні налаштування комп'ютерних ігор.

У Nvidiaі AMDє програмне забезпеченнядля автоматичного налаштування графіки згідно технічним характеристикамкомп'ютера. Зі своїм завданням програми справляються непогано, але часто ручне налаштуванняприносить значно більше користі. Все-таки, ми ПК-бояри, у нас має бути свобода вибору!

Якщо ви новачок в галузі ігрової графіки, цей посібник створено спеціально для вас. Ми розшифруємо основні пункти будь-якого меню "Налаштування графіки" у ваших іграх і пояснимо, на що вони впливають. Ця інформація допоможе вам позбутися лагів і фризів у улюбленій грі, не втрачаючи красивої картинки. А власники потужних комп'ютерівзрозуміють, як налаштувати найсоковитішу і найпривабливішу графіку, щоб записувати круті відео та робити видовищні скріншоти.

Почнемо з фундаментальних понять, а потім пройдемося за тонкими налаштуваннями в рамках кількох розділів, присвячених анізотропній фільтрації, згладжуванню та постобробці. Для написання цього гайду ми користувалися інформацією, отриманою від професіоналів: Алекса Остіна, дизайнера та програміста Cryptic Sea, Ніколаса Вайнінга, технічного директора та провідного програміста Gaslamp Gamesта від представників Nvidia. Відразу зазначимо, що статтю ми пишемо простими словами, опускаючи докладні технічні деталіщоб вам було легше зрозуміти механізми роботи різних технологій.

ОСНОВИ

Дозвіл

Піксель – основна одиниця цифрового зображення. Це колірна точка, а роздільна здатність - кількість стовпців і рядів точок на моніторі. Найпоширеніші дозволи на сьогодні: 1280x720 (720p), 1920x1080 (1080p), 2560x1440 (1440p)і 3840 x 2160 (4K або Ultra-HD). Але це для дисплеїв формату 16:9 . Якщо у вас співвідношення сторін 16:10 , дозволи злегка відрізнятимуться: 1920x1200, 2560x1600і т.д. У ультрашироких моніторів дозвіл також інший: 2560x1080, 3440x1440і т.д.

Кадри на секунду (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:

Вертикальна синхронізація та розриви кадрів

Коли цикл оновлення дисплея не синхронізований із циклом рендерингу гри, екран може оновлюватися в процесі перемикання між готовими кадрами. Виходить ефект розриву кадрів, коли бачимо частини двох чи більше кадрів одночасно.

Неприємні розриви кадрів

Одним із рішень цієї проблеми стала вертикальна синхронізація, яка майже завжди присутня у налаштуваннях графіки. Вона не дозволяє грі показувати кадр, доки дисплей не завершить цикл оновлення. Це викликає іншу проблему - затримка виведення кадрів, коли гра здатна показати більшу кількість 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):

Який метод згладжування використати?

Залежить від вашої відеокарти та особистих переваг щодо продуктивності та візуальної якості. Однак, якщо частота кадрів не є проблемою, вибір очевидний: FXAAнайефективніше. Якщо ж у вас відеокарта RTXі ваша гра підтримує DLSS— спробуйте, адже не дарма ви заплатили за нову і дуже ефективну технологію. У старих іграх доведеться покрутити налаштування туди-сюди, щоб підібрати ідеальну комбінацію продуктивності та привабливого зовнішнього вигляду. Якщо ваша система досить потужна, можете протестувати суперсемплінг замість вбудованих опцій.

Гладковиголений згладжений Бетмен

Перевизначення налаштувань згладжування

Теоретично, графічні налаштування в іграх не повинні мати значення. Ви можете просто відкрити панель управління Nvidia і AMD і змінити там все на власний розсуд. На жаль, насправді все працює інакше. Незважаючи на те, що ви можете перевизначити налаштування для будь-якої гри, позитивний результатне гарантовано.

Ніколас Вайнінг пояснює: «Дуже часто перевизначення налаштувань не працює через відкладений рендеринг, що порушує роботу багатьох поширених методів згладжування». Алекс Остін із Cryptic Sea також зазначив, що деякі методи згладжування не працюють з налаштуваннями панелей відеокарт. Тож треба тестувати. Спробуйте вимкнути згладжування у грі та встановіть його в панелі керування, потім зайдіть назад у гру та перевірте результат.

Ми помітили, що MLAAвід AMD працює краще з панелі керування. Але важливо відзначити, що це фільтр пост-обробки, який застосовується до всіх об'єктів сцени. Тому він може виправити нерівні краї текстур, але при цьому захопити дещо зайве. Приклад того, меню в BioShock Infinite, літери якого стали трохи згладженими.

Меню трохи «постраждало»

Суперсемплінг з використанням технології динамічного супердозвіл (DSR)від Nvidia або технології віртуальної надвисокої роздільної здатності від AMD більш надійний. У Nvidia DSRвключається в розділі «Керування налаштуваннями 3D», де його можна виставити аж до 4x. А віртуальна надвисока роздільна здатність у AMD включається у вкладці «Дисплей». Активувавши будь-яку з цих налаштувань, ви запустите гру у вищій роздільній здатності, яка буде зменшена до розмірів роздільної здатності екрана. Вийде красиво, але ресурсозатратно. Крім того, можуть виникнути проблеми з інтерфейсом у деяких іграх або технологія взагалі не захоче працювати.

Білінійна та трилінійна фільтрація

Фільтрація текстур стежить, як двомірні картинки накладаються на тривимірну модель. Піксель на тривимірній моделі не обов'язково відповідатиме пискелю на текстурі (до речі, на тривимірних моделях пікселі називаються текселями). Адже ви спостерігаєте за моделлю на різних відстаняхта під різними кутами. Тому, коли потрібно дізнатися колір пікселя, фільтрація знаходить точку на відповідній текстурі, бере кілька семплів з прилеглих текселів і усереднює їх. Найпростіший методфільтрації — білінійна фільтрація, яка вибирає чотири найближчих текселі, щоб знайти колір потрібного пікселя.

Світ розпадається на частини

З'явилося MIP-Текстурування і разом з ним виникла нова проблема. Припустимо, ви стоїте на поверхні з бетону, що тріснув. Якщо подивіться прямо вниз, побачите більшу, детальну бетонну текстуру. Але коли подивіться в далечінь, де дорога йде в горизонт, ви побачите лише пару пікселів, і особлива деталізація там не потрібна. Тому, щоб підвищити продуктивність без втрати якості, гра підвантажить текстуру нижчої роздільної здатності, іменовану MIP-текстури.

Так ось, коли ми розглядаємо нашу дорогу, не дуже хочеться бачити, де одне MIP-зображення закінчується, а інше починається, тому що їх якість відрізняється і перехід різатиме око. Білінійна фільтрація не інтерполює (не згладжує) переходи, тому з цим типом фільтрації вони помітні. Проблема вирішується за допомогою трилінійної фільтрації, що згладжує перехід між MIP-текстурами, використовуючи семпли кожної з них.

Анізотропна фільтрація

Трилінійна фільтрація працює, але текстури все ще здаються розмитими. Ось для чого було винайдено анізотропну фільтрацію, яка значно покращує якість текстур при погляді під кутом.

Анізотропна фільтрація домінує

Щоб зрозуміти, як це працює, уявіть квадратне вікно - піксель тривимірної моделі - з цегляною стіною прямо за ним як текстуру. Через вікно пробивається світло, утворюючи на стіні квадратну форму. Це наша область семплінга, і вона однакова у всіх напрямках. За такою технологією беруться семпли у випадку з білінійною та трилінійною фільтраціями.

Якщо модель знаходиться прямо перед вами, перпендикулярно погляду - результат вийде осудним. А якщо ви дивитеся на неї під кутом? Виходить розмитість. А тепер уявіть, що текстура цегляної стінки відхилена від вікна. Промінь світла перетвориться на довгу трапецію, що покриває набагато більше вертикального простору на текстурі, ніж горизонтального. Це область, яку потрібно семплювати для пікселя. Приблизно так, грубо кажучи, працює анізотропна фільтрація. Вона масштабує MIP-текстури в одному напрямку відповідно до кута, під яким ви спостерігаєте тривимірний об'єкт.

Концептуально цю технологію не так легко зрозуміти. Якщо після нашого пояснення у вас все ще залишилися питання, краще погляньте на пояснення самої Nvidia, де вказано більше Детальна інформаціяна тему (англійською мовою).

А що тут означають цифри?

Анізотропна фільтрація в налаштуваннях сучасних ігорзустрічається не так часто, але там, де вона є, її можна виставити в межах від 2 до 16х. Nvidia пояснює, що ці цифри відносяться до крутості кута, до якого буде застосована фільтрація:

«Анізотропна фільтрація функціонує з рівнями анізотропії між 1 і 16, визначаючи максимальний ступінь, з яким може масштабуватися MIP-текстури. Але вона зазвичай пропонується користувачеві у дворазовому збільшенні: 2х, 4х, 8х та 16х. Різниця між цими налаштуваннями у максимальному куті, під яким фільтрація працюватиме з текстурою. Наприклад, 4х фільтруватиме текстури під кутами вдвічі більш крутими, ніж 2х, але при цьому почне застосовувати 2х фільтрацію для текстур, кут яких знаходиться в діапазоні 2х, для оптимізації продуктивності. Це дозволить знизити навантаження на систему навіть при максимальних налаштуванняханізотропної фільтрації».

Продуктивність

Анізотропна фільтрація не так сильно впливає на продуктивність як згладжування, тому в наші дні її рідко додають в меню налаштувань (вона включена за замовчуванням). Використовуючи бенчмарк BioShock Infinite, ми помітили зниження середнього FPSвсього 6 кадрів у порівнянні між білінійною та анізотропною фільтраціями. Це мізерна різниця, враховуючи значне покращення якості картинки. Адже висока якість текстур не має сенсу при поганій фільтрації.

Ще приклад перемоги анізотропної фільтрації над іншими методами

Налаштування якості графіки

Налаштування якості багато в чому залежать від гри. У цілому нині, вони підвищують і знижують складність ігрових ефектів і ассетів (ресурсів, цифрових об'єктів). Перехід від низьких налаштувань до високих може вплинути на купу змінних. Наприклад, збільшуючи якість тіней, ви можете збільшити їхню роздільну здатність, увімкнути м'які тіні або змінити відстань, на яких тіні будуть видні. Ви не дізнаєтеся, що конкретно зробили, але в деяких випадках зміни суттєво покращать продуктивність.

Зменшення та збільшення якості текстур значно впливає на продуктивність та візуальну якість. У бенчмарку BioShock Infinite ми виставили всі налаштування на максимум і змінювали лише якість текстур. Ось результати (при використанні двох Nvidia GTX Titan SLI):

Помітили стрибок між низькими та високими налаштуваннями? Більше десяти кадрів на секунду. Здається, це не так багато. Але на інших системах різниця може бути значно більшою, адже наш тестовий стенд досить потужний. Не існує швидкого способувизначити ідеальні параметри якості графіки для вашої системи. Це той випадок, коли потрібно випробувати ручками. Рекомендуємо спочатку випробувати поради ПЗ від Nvidia та AMD, а потім підвищити якість текстур, освітлення та тіней, перевіряючи середній FPS.

Глобальне затінення (Ambient occlusion)

Глобальне освітлення рівномірно розподіляється за кожним об'єктом сцени. Наприклад, сонячним днем, коли навіть у тіні розсіюється певна кількість світла. Для надання глибини сцені технологія поєднується із спрямованим освітленням, адже без цього картинка виходить плоскою.

Інтимне затінення

Глобальне затінення намагається покращити цей ефект, визначаючи, які частини сцени мають висвітлюватись сильніше чи менше. Воно не відкидає жорсткі тіні, як джерело спрямованого світла, а скоріше затемнює загальний інтер'єр та щілини, додаючи м'яке затінення.

SSAO (перегородження навколишнього світла в екранному просторі)

Майже те саме, що й глобальне затінення (ambient occlusion), яке використовується при рендерингу в реальному часі. За останні роки ця технологія стала звичайним явищем в іграх, а вперше її можна було побачити у . Іноді технологія виглядає безглуздо, немов навколишні предмети «сяють» темнотою. В інших випадках вона ідеально додає сцені глибини. Усі основні двигуни підтримують SSAO, а реалізація технології залежить від гри та її розробників.

Є також покращені варіації SSAOу вигляді HBAO+і HDAO.

Технологія HDRR (High dynamic range rendering – високодинамічний діапазон рендерингу)

HDRбув у моді серед фотографів кілька років тому. Діапазон тут відноситься до яскравості зображення та визначає наскільки темним або яскравим воно може бути. Мета технології в тому, щоб темні області сцени були такими ж докладними і помітними, як і яскраві. Зображення з низьким динамічним діапазоном добре помітне у світлих ділянках, а в тіні вся деталізація втрачається, або навпаки.

HDR рулить

У минулому діапазон темного та світлого в іграх був обмежений вісьмома бітами (256 значень). Але з появою DirectX 10став можливий 128-бітний HDRR. Хоча технологія все ще обмежена контрастністю дисплеїв. Немає стандартизованого методу вимірювання контрастності, але LED-монітори найчастіше видають контрастність 1000:1.

Bloom-ефект

Сумно відомий своєю зайвою популярністю у ігрових розробників, bloom-ефект намагається імітувати те, як яскраве світло поширюється по краях моделей, роблячи джерела світла яскравішими, ніж вони є насправді. Це працює, але часто bloom реалізують настільки криво, що звичайні настільні ламписвітяться сильніше за ядерний вибух. На щастя, у більшості ігор його можна вимкнути.

Нижче можете подивитися на скріншот з гри Syndicate- Яскравий (у прямому сенсі) приклад кривої реалізації bloom-ефект.

Хто це там наднову на вулиці висадив у повітря? :)

Розмиття (motion blur)

Все дуже просто — це фільтр, що імітує різкий рух кадру, наче у фільмі. Багато геймерів вважають за краще його відключати. І не тільки тому, що він впливає на продуктивність, а й з міркувань комфорту. Розмиття іноді гарно виглядає, наприклад, у гоночних іграх (якщо воно правильно реалізовано). Але зазвичай ми його вимикаємо.

Глибина різкості (Depth of field, DOF)

Для фотографів глибина різкості означає відстань між найближчою та найвіддаленішою точками, які з'являються у фокусі. Наприклад, якщо ми знімаємо портрет із невеликим DOF, обличчя людини буде різким, а волосся ззаду почне розпливатися і задній план виявиться повністю розмитим. З іншого боку, якщо DOFвиявиться занадто великим, ніс людини буде деталізований на тому ж рівні, що й усі об'єкти позаду нього – не надто красиво.

За матеріалами сайту PC Gamer