Гра світла і тіней — як налаштування освітлення змінюють ігрову графіку

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

Сучасний геймінг — це не просто «встановив і грай». Принаймні, якщо йдеться не про консолі, а про ігрові ПК та їхніх власників. Нині модно збирати яскраві системники, що світяться, потім їх розганяти, а тільки потім встановлювати ігри та насолоджуватися класною графікою. Щоправда, і тут не все так просто — перед грою потрібно налаштувати зображення таким чином, щоб не зіпсувати якість картинки і не втратити дорогоцінні FPS.

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

Про комп’ютерну графіку

Почнемо з того, що комп’ютерна графіка — це не просто растрова картинка, яку намалювали у фотошопі і додали в гру. Ігрове зображення складається з мільйонів полігонів (геометричних фігур), які, своєю чергою, формують віртуальні 3D-об’єкти. Здебільшого полігонами є трикутники — найпростіші фігури, які потребують для побудови всього три точки. І що більше таких трикутників можна вмістити в об’єкті, то більш деталізованим буде його зовнішній вигляд.

Зверніть увагу на зображення нижче, яке демонструє залежність якості моделі від кількості полігонів (128 vs 2048):

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

Одним із яскравих прикладів правильного використання освітлення в іграх став Portal RTX. Просто подивіться, як сучасні технології освітлення змінюють графіку початку 2000-х років:

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

Світло проти темряви 1: Тіні

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

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

Якість тіней (Shadow Quality)

Як правило, це один з перших пунктів у налаштуваннях графіки і, до того ж, найбільш ненажерливий до ресурсів відеокарти. Може регулюватися в діапазоні від «Низьке» до «Ультра» і впливає на те, як у грі відображатимуться основні тіні. Наприклад, в останній Tomb Raider різниця між мінімальним і максимальним значенням цього параметра виглядає так:

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

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

Роздільна здатність тіней

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

Вплив на продуктивність теж високий, хоча і візуальний ефект крутий. Неабияк від’їдає FPS, оскільки опрацьовує кожну текстуру в збільшеній роздільній здатності.

Деталізація тіней від сонячного світла (Sun Shadow Detail)

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

Звісно, без спалювання дорогоцінних кадрів на секунду тут не обійтися — це теж вимогливе налаштування, яке має підвищений апетит до відеопам’яті.

Деталізація локальних тіней (Spot Shadow Detail)

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

Зазвичай цю плюшку можна відключити назовсім або налаштувати за смаком від низької якості до ультра.

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

Динамічні локальні тіні (Dynamic Spot Shadows)

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

Як правило, відеокарті простіше намалювати тіні всередині приміщень, ніж прорахувати природне освітлення на відкритій місцевості. Тому вплив цього параметра в різних іграх відбувається по-різному. Наприклад, у Titanfall 2 це налаштування відбирає цілих 13 FPS.

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

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

Зазвичай в іграх використовується кілька типів AO — SSAO, HBAO, HBAO+ і HDAO. Перший тип ( S creen S pace A mbient O cclusion) є універсальним і працює на всіх відеокартах і в більшості «графоністих» ігор. Наступні три типи є ексклюзивними для NVIDIA (H orizon- b ased A mbient O cclusion і H orizon- b ased A mbient O cclusion+) і AMD (H igh- D efinition A mbient O cclusion). Як правило, якщо прискорювач підтримує спеціальний тип AO, то рекомендується використовувати саме таке налаштування. Втім, звичайний SSAO теж непоганий — усе залежить від того, як розробники реалізують цей режим.

Глобальне затінення дуже важливе в сучасній графіці і вже не так сильно впливає на продуктивність, як це було в момент виходу технології. Хороший приклад ненажерливого SSAO — той самий Crysis, який нагинав навіть екстремальні ігрові збірки свого часу. Зараз із цим усе простіше, тому що графічні чипи оптимізовані для роботи з AO на рівні архітектури.

Капсульні тіні (Capsule Shadows)

Думали, ми скоро закінчимо з тінями? А ось і ні — далі за списком налаштування, яке дає змогу об’єктам відкидати «приблизні» тіні. Розробники використовують цю технологію, щоб спростити затінення рухомих моделей — наприклад, персонажів.

Для цього вони використовують капсульний метод представлення «скелетів» моделей. Наприклад, замість частин тіла використовуються капсули або сплюснуті овали.

На продуктивність це налаштування майже не впливає — наприклад, у Gear of War 4 ця опція від’їдає всього 1 FPS.

Дальність відображення тіней від листя (Foliage Shadows Distance)

Параметр регулює відстань, на якій буде видно тіні від рослинності — стосується не тільки листя, а й трави та інших об’єктів цього класу. Зустрічається не у всіх іграх.

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

Якість тіней в екранному просторі (Screen Space Shadow Quality)

Ця технологія відтворення тіней з’явилася в Unreal Engine 4.13 і була реалізована в Gear of War 4. Зараз складні графічні елементи малюють каскадами — кожен кадр ділиться на ділянки, які обробляються унікальним чином. Наприклад, загальні налаштування затінення впливають тільки на якість основних тіней у грі. При цьому тіні другорядних об’єктів реалізовуються як за допомогою таких технологій.

У тій самій Gear of War 4 завдання SSSQ полягає у створенні додаткових тіней для листя, дрібних об’єктів на землі і всього, що перебуває в полі зору гравця, але не несе в собі головного візуального навантаження.

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

Світло проти темряви 2: Освітлення

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

Світлові стовпи (Light Shafts)

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

Volumetric Lightning, як цю технологію називають у деяких іграх, також надає картинці об’єму. Наприклад, цей ефект дуже багато реалізовано в Shadow of The Tomb Raider.

Що цікаво, у деяких іграх параметр майже не впливає на продуктивність. Наприклад, у Gear of War 4 технологія від’їдає всього 1-1,5 FPS. Водночас в інших проєктах надбудова виявляється чи не найвимогливішою до GPU.

Відблиски (Lens Flare Quality)

З тієї ж серії, що й попереднє налаштування — створює ефект відблисків лінз від джерела світла. Що вища якість, то більше відблисків, а також краща якість промальовування

Вплив на продуктивність мізерний.

Розмиття джерел яскравого світла (Bloom)

Третій параметр із серії світлових спотворень — Bloom, який створює світіння навколо яскравих джерел. Наприклад, посилює світло від лампи або від багаття.

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

Розсіювання світла (Light Scattering Quality)

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

Погодьтеся, без цього ефекту стає складно розібрати, що за об’єкт розташований у центрі. Крім ефектних променів LSQ дає змогу домогтися якіснішого відображення тіней від рухомих об’єктів, а також від світла, що перекривається.

Тестування в Gear of War 4 показує, що вплив цього ефекту на FPS мінімальний — не більше 3 FPS у режимі Ultra.

Заломлення (Refractions)

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

Від’їдає всього кілька кадрів на секунду, але однозначно варте того.

Якість текстур освітлення (Lightning Texture Detail)

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

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

Підповерхневе розсіювання (Sub-Surface Scattering)

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

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

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

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

Світло проти темряви 3: Трасування

З виходом відеокарт NVIDIA RTX ігрова графіка пережила революцію в плані освітлення. У розробників з’явився новий інструмент, за допомогою якого можна створювати реалістичні ефекти. Це трасування променів (raytracing, RT), яке перетворює намальоване текстурами освітлення або грубі моделі затінення на реалістичне падіння світла на поверхні, а також на якісні віддзеркалення і тіні. Це вимагає підтримки від графічного прискорювача, а також величезних апаратних ресурсів. Водночас у RT також є налаштування, які можна вмикати, вимикати і регулювати за шкалою інтенсивності.

Відображення (Ray-Traced Reflections)

У режимі трасування променів відображення на дзеркальних поверхнях працюють з освітленням, тому віднесемо цей пункт до нашої теми. У всіх підтримуваних RT іграх цей ефект реалізовано по-різному — наприклад, у Control трасовані відображення замінюють налаштування Screen Space Reflections.

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

У деяких сценах параметр змінює не тільки якість віддзеркалень на глянцевих поверхнях, але також впливає на відображення прозорих текстур. Цей ефект називається Ray-Traced Transparent Reflections — відображення на прозорих поверхнях.

Дуже часто RT додає відображення там, де звичайні технології не справляються.

Вплив цього налаштування на продуктивність просто величезний — увімкнення віддзеркалень за допомогою трасування може від’їсти у топової відеокарти RTX до 30-40 кадрів. Хоча результат, звичайно, вартий того.

Контактні тіні (Ray-Traced Contact Shadows)

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

Також ефект проявляється в так званих важкодоступних місцях — під підошвою, на складках рукава або між пальців рук. Ще непоганий приклад — тінь від сітки рабиці на дерев’яному піддоні.

У плані просідання FPS це налаштування графіки вражає не менше — готуйтеся поділитися з ігровим рушієм як мінімум 15-20 % продуктивності.

Перевідбиття (Ray-Traced Diffuse Lightning)

Пам’ятаєте параметр, який відповідає за якість світіння шкіри? Це приблизно те ж саме, тільки тепер стосується всіх об’єктів, які відбивають світло. На прикладі нижче ефект проявляється у висвітленні жовтих труб — з увімкненим трасуванням вони відкидають світло одне на одне, формуючи кольорові тіні.

На продуктивність впливає середньо — знизить FPS приблизно на 10-15 %.

Вибір налаштувань на свій смак

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

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

Дисклеймер. Одні й ті самі налаштування графіки можуть впливати на продуктивність ігор по різному. Усе залежить від оптимізації проекту, а також від версії графічного драйвера і навіть операційної системи. Наприклад, у рамках даного матеріалу використовувалася статистика продуктивності з офіційних тестів NVIDIA GeForce Experience. У приватних руках з іншою апаратною конфігурацією результати можуть відрізнятися.