На первую VAKANSII.com.ua
   На первую VAKANSII.com.ua  На первую VAKANSII.com.ua
СЕГОДНЯ НА САЙТЕ:  162 ВАКАНСИЙ. НОВЫХ - 19 Интернет
  47262 РЕЗЮМЕ. НОВЫХ - 14 Если не работает
 Сайт газеты

  • Страхования
  • Фехтование
  • Инвестирование
  • ПротивоГАЗы
  • Как авто
  • Респираторы
  • Средства пожаротушения
  • Новости
  • Заказ курсовой работы недорого

    Есть затруднения со сдачей курсовой работы точно и в срок? Вы можете заказать курсовую работу от kursoviks.com.ua заказ дипломной работы или курсовой проект по недорогой цене.

    Статьи

    Оптимізація відеоігор - що це насправді таке

    1. Що таке оптимізація, і чим її виміряти?
    2. Сучасні ефекти і продуктивність
    3. Якість зображення
    4. Освітлення і тіні
    5. Інші візуальні ефекти
    6. особливості оптимізації
    7. Стандартні настройки та системні вимоги
    8. Труднощі оптімізації
    9. Оптимізація стосується не тільки графіки!
    10. Підводячі підсумок

    Варто тільки почати обговорення нової гри для ПК, як невідворотно спливе слово «оптимізація». Deus Ex: Mankind Divided? «Схоже, що цю гру ВЗАГАЛІ не оптимізували», - пише хтось із гравців в Steam . Metro: Last Light? «Якщо коротко, то оптимізація виконана жахливо», - пише інший .

    Скарги на погану оптимізацію, як правило, йдуть пліч-о-пліч з фразами на зразок «у ​​мене ця гра гальмує». Але чи пов'язана продуктивність з помилками програмістів, які не змогли ефективно написати код? Як зрозуміти, гра насправді погано оптимізована або для неї просто не вистачає потужності вашого ПК?

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

    Що таке оптимізація, і чим її виміряти?

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

    Ось простий приклад. Припустимо, вам необхідно обчислити наступне:

    a = b * c + b * c + b * c

    Якщо замість цього ми визначимо:

    d = b * c, і запишемо a = d + d + d

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

    Так як же нам міркувати про оптимізацію, зберігши хоч якусь об'єктивність? Ось яке визначення дали мені в QLOC:

    «Показник хорошою оптимізації - працює гра працює з однаковою частотою кадрів на широкій лінійці апаратних конфігурацій, включаючи низькопродуктивні»

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

    Дін Секуліч з Croteam оптимізує гри вже 20 років і впевнений, що «з одного боку, неможливо порівняти, наскільки оптимізовані різні ігри», але з іншого? завжди можна скласти думку, візуально оцінивши якість двох різних ігор і рівень продуктивності, який ними досягнуто. Однак він також зазначає, що «є багато всього прихованого від очей», що впливає на поведінку гри.

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

    Сучасні ефекти і продуктивність

    Якщо ви розчаровані продуктивністю гри, швидше за все виною тому один з цих ефектів. У більшості випадків картинка не виглядає плавною саме завдяки їм, і з них варто почати налаштування графіки для досягнення частоти 60 fps (кадрів в секунду).

    Якість зображення

    Можливо, найпростіший параметр, який помітно впливає на продуктивність і дозволяє порівнювати рівень оптимізації, це дозвіл екрана. Цілком природно порівнювати гри на однаковому дозволі, оскільки цей параметр складається всього з двох чисел (наприклад, 1920 × 1080) і доступний для настройки практично в кожній грі. Важливий факт, який часто не береться до уваги: ​​зі зміною дозволу змінюється кількість виведених пікселів - 4k дає навантаження приблизно в чотири, а не в два рази більше, ніж 2k.

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

    • Чисті методи роботи з екранним простором, такі як FXAA або SMAA (1x). Працюють з уже згенерував зображенням. На етапі постобробки проводиться спроба виявити і усунути артефакти візуалізації, наприклад, «драбинки».
    • Методи часового згладжування. Роблять руху більш плавними, генеруючи зображення з накладенням попереднього кадру і виводять проміжний результат.
    • Множинна вибірка згладжування або мультісемплінг (MSAA). На різних етапах візуалізації пікселі на гранях полігонів генеруються на основі декількох попередніх віртуальних моделей.
    • Надлишкова вибірка згладжування або суперсемплінг. На різних етапах візуалізації всі пікселі генеруються на основі декількох попередніх віртуальних моделей.
    • Комбінації з вищеописаних методів (наприклад, TXAA)

    Список представлений в порядку зростання очікуваного впливу на продуктивність, за винятком останнього пункту, який залежить від використовуваних методів. Методи, що працюють з екранним простором, задіють невелика кількість ресурсів, трохи більше навантаження дає временнóе згладжування, далі йдуть мультісемплінг і, нарешті, суперсемплінг. Мультісемплінг представляє особливу складність для зіставлення продуктивності, оскільки, в залежності від способу реалізації, навантаження при використанні цього методу може значно відрізнятися - від мінімальної до близької з суперсемплінг. Суперсемплінг досить легко співвіднести з дозволом: використання N x суперсемплінг збільшує навантаження еквівалентно збільшенню дозволу в N раз.

    Хороший набір опцій для настройки згладжування в The Talos Principle
    Хороший набір опцій для настройки згладжування в The Talos Principle

    Освітлення і тіні

    Поверхні і навколишнє атмосфера безпосередньо залежать від освітлення, яке відноситься до основ 3D графіки і одночасно є її Священним Граалем. Постійно розробляються все більш складні ефекти, завдяки яким можна досягти сучасне якість зображення, проте поліпшення картинки часто досягається за рахунок величезної шкоди продуктивності.

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

    Каркасна сітка сучасних променів бога в Fallout 4
    Каркасна сітка сучасних променів бога в Fallout 4. Джерело: Nvidia

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

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

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

    Приклад контактного ущільнення в реальному житті
    Приклад контактного ущільнення в реальному житті

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

    Інші візуальні ефекти

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

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

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

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

    особливості оптимізації

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

    Стандартні настройки та системні вимоги

    Попередньо графічні настройки - звичні «низькі», «середні», «високі», «дуже високі», «ультра» - практично ніколи не відповідають один одному в різних іграх, проте вони вкрай важливі: їх використовують гравці, які не хочуть заглиблюватися в тонкощі індивідуальної настройки.

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

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

    Налаштування продуктивності за категоріями в The Talos Principle
    Налаштування продуктивності за категоріями в The Talos Principle

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

    Гравцям не завжди до кінця відомо, яким чином визначаються системні вимоги. У той час як кожен розробник використовує власні стандарти, в Croteam «мінімальні» вимоги означають, що гра повинна добре працювати на низьких налаштуваннях, і якщо ці вимоги не дотримані, технічна підтримка не надається. «Рекомендовані» ж системні вимоги мають на увазі, що гра повинна добре працювати ( «нема на середніх, а на високих», як сказав мені Дін) c дозволом 1080p.

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

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

    Вражаюча дальність промальовування в Dying Light
    Вражаюча дальність промальовування в Dying Light. Скріншот: Джеймс Снук

    Піднявся гучне виття на Dying Light, як на «страшенно не оптимізований порт на ПК» через те, що вона не відповідала (довільно обраним) стандартам на максимальних налаштуваннях графіки. Як з'ясувалося, повзунок налаштування дальності промальовування, встановлений на мінімум, в первісній версії гри визначав вищу дальність промальовування, ніж на консолі. По суті, люди були незадоволені тим, що розробник мав на увазі, що в ранніх патчах гравцям доведеться встановлювати повзунок дальності промальовування на 55% від максимального значення.

    Виглядала б гра більш «оптимізованої», якби цей простий крок був зроблений до релізу? Я в цьому впевнений. При цьому була б вона насправді «краще оптимізована»? Зрозуміло, немає. Dying Light - не тільки хороший приклад того, як складно оцінити якість оптимізації, а й того, що повинні враховувати розробники при визначенні доступних налаштувань графіки.

    Схожа історія недавно сталася з Deus Ex: Mankind Divided, в якій важливе значення має настройка MSAA (до 8x). Оскільки в грі використовується відкладене освітлення і затінення - універсальна техніка візуалізації, яка робить набагато менш ефективною просту реалізацію MSAA з апаратним прискоренням - MSAA давала велике навантаження на продуктивність, якої від неї ніхто не чекав. І знову, гра виглядала б більш «оптимізованої» в тому випадку, якщо б не надавала таку настройку, при чому, знову ж таки, проблема з оптимізацією зовсім не в цьому.

    Гра рідко представляє з себе монолітну сутність, яка або оптимізована, або ні. Чи не оптимізовані можуть бути окремі ефекти, на відміну від гри в цілому. Це особливо поширене при використанні нововведень: коли в оригінальній Crysis вперше було використано розсіяне затінення, воно було погано оптимізовано в порівнянні з сучасними реалізаціями. Крім того, перша реалізація воксельного розсіяного затінення в Rise of the Tomb Raider - в цілому добре оптимізованої і гарної гри - може виявитися гірше прийдешніх реалізацій.

    Техніка відкладеного освітлення і затінення в Deus Ex: Mankind Divided робить згладжування набагато більш ресурсоємним
    Техніка відкладеного освітлення і затінення в Deus Ex: Mankind Divided робить згладжування набагато більш ресурсоємним. Скріншот: Мері До

    Metro 2033 стала однією з перших ігор, де були широко використані об'ємні промені, і позиціонувалася вона як духовний приймач Crysis в тому, що стосується продуктивності на високих налаштуваннях. Це ж актуально і для недавнього і подальшого використання тіней з контактним ущільненням. Проте, я вважаю, що необхідно експериментувати з впровадженням нових можливостей, незважаючи на те, що перші реалізації не завжди можна використовувати через їх навантаження на продуктивність. Завдяки цьому процес розвитку ігрової розробки не стоїть на місці, і з'являються добре оптимізовані візуальні ефекти. Принадність платформи ПК полягає в тому, що ефект, який був «не оптимізований» в 2010 році, може бути використаний по максимуму в 2016-м, і гра буде виглядати краще навіть на середній апаратної конфігурації.

    Зрозуміло, існують гри, які дійсно погано оптимізовані. Зазвичай за ними стоїть один і той же: брак ресурсів, спроба невеликого розробника відкусити більше, ніж він може прожувати, або просто низькі технічні навички. Коли гра гальмує на настройках за умовчанням навіть на найпотужнішому ПК, або в простий 2D грі fps падає до 20 кадрів в секунду навіть на сучасній консолі, тоді ніякої найглибший аналіз не призведе до втішних висновків. У більшості випадків, однак, оцінка стає набагато складніше, і я сподіваюся, що, як я сподіваюся, було добре проілюстровано в цьому розділі.

    Труднощі оптімізації

    Сам процес создания оптимального коду (в тому значенні, Пожалуйста вікорістовується в інформатіці, что згадувать Ранее) Досить трудомісткій. Для Діна Секуліч «найгіршій кошмар оптімізації» це «Дивитися на дані профайлера и Бачити, что Виконання верхньої Функції займає 3% часу». Для розуміння того, що мається на увазі, скажу, що профайлер це інструмент, який дозволяє програмісту побачити, скільки часу у програми йде на виконання кожної функції, зазвичай він сортує підсумковий список по спадаючій часу виконання.

    Коли верхня функція займає 3% часу, це означає, що якщо вам вдасться удвічі скоротити час її виконання - для чого можуть знадобитися титанічні зусилля - в цілому програма прискориться на 1,5%. Через те, що подібні ситуації виникають постійно, оптимізація готового коду перетворюється в поетапний і трудомісткий процес.

    У QLOC портируют гри з використанням самих різних технологій, тому з кожним проектом виникають нові завдання. «Це може може бути по-справжньому складно для однієї гри, і набагато простіше для іншої».

    Таким чином, як каже Дін, в оптимізації програми «не буває простих і очевидних рішень».

    До питання про DirectX 12

    Низькорівневі інтерфейси начебто DirectX 12 іноді стають простим відповіддю на суперечки про оптимізацію, однак безліч ігор з DirectX 12 так і не показали значних результатів в продуктивності.

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

    Дін Секуліч впевнений, що «парадигму движків візуалізації пора міняти», але при цьому бачить величезний потенціал для Vulkan в майбутньому. Він дає наполовину жартівливий рада розробникам: «Якщо ви використовуєте Vulkan, додавайте на екран побільше об'єктів», маючи на увазі, що в майбутньому можуть виникнути ситуації, які неможливо якісно відтворити, використовуючи можливості сучасних інтерфейсів.

    Оптимізація стосується не тільки графіки!

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

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

    Rise of the Tomb Raider
    Rise of the Tomb Raider. Скріншот: Мері До

    Підводячі підсумок

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

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

    На завершення статті мені хотілося б озвучити два прохання.

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

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

    Автор: Петер «Durante» Томан - розробник інструменту для даунсемплінга GeDoSaTo і моддер, який стоїть за створенням DSfix для Dark Souls. Раніше він аналізував такі портований на ПК ігри, як Dark Souls 3 , писав відкритий лист розробникам ігор для ПК , та інше.
    оригінал: PC Gamer .

    переклав: Микита Пінчук .
    Редагував: Артем Слободчиков .

    Що таке оптимізація, і чим її виміряти?
    Deus Ex: Mankind Divided?
    Metro: Last Light?
    Але чи пов'язана продуктивність з помилками програмістів, які не змогли ефективно написати код?
    Як зрозуміти, гра насправді погано оптимізована або для неї просто не вистачає потужності вашого ПК?
    Що таке оптимізація, і чим її виміряти?
    Так як же нам міркувати про оптимізацію, зберігши хоч якусь об'єктивність?
    Дін Секуліч з Croteam оптимізує гри вже 20 років і впевнений, що «з одного боку, неможливо порівняти, наскільки оптимізовані різні ігри», але з іншого?
    Що ж це таке?
    Виглядала б гра більш «оптимізованої», якби цей простий крок був зроблений до релізу?

    Новости

    www.natali.ua www.buhgalteria.com.ua www.blitz-press.com.ua  | www.blitz-price.com.ua  | www.blitz-tour.com.ua
     
    Rambler's Top100
     письмо веб-мастеру
    Copyright c 2000, Блиц-Информ