Brainy Studio - We Create Games! Методи оптимізації високополігональних 3D моделей

Written by Evgeniy Romin.

Стаття підготовлена ​​спеціально для конференції Innotech - http://conference.msa.pstu.ru/

Автори: Бояршинов Олександр та Ромін Євген.

Метою цієї статті є оглядкількох методів оптимізації високо деталізованих 3D моделей та застосування їх на практиці, в рамках роботи над студентським проектом WitchCraft.

Алгоритми видалення невидимих ​​граней і линий. Виділяють три класи таких алгоритмів [1]:

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

studio

Мал. 1 Приклад використання алгоритмів видалення граней невидимих ​​для користувача у звичайному режимі

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

games

Мал. 2 Метод редукції полігонів на прикладі персонажа та вибір оптимальної конфігурації.

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

Алгоритми ручного створення низькополігональних моделей. Низькополігональні (low-poly) моделі використовуються коли не потрібна висока деталізація, якщо прийнятну якість зображення можна отримати, за допомогою опрацьованих текстур, карт нормалей та інших візуальних ефектів. Найчастіше такі моделі використовуються для економії обчислювальних ресурсів у 3D-додатках, де є необхідність відображення моделей та анімації в режимі реального часу [2].

При створенні низькополігональних моделей слід прагне мінімально можливу кількість вершин і ребер створити модель об'єкта досить схожу на реальний прототип. Існує кілька способів створення візуального подання тривимірного об'єкта з мінімальними втратами якості [3]:

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

методи

Мал. 3 Приклади завдання примітиву різними кількостями полігонів.

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

brainy

Мал. 4 Приклади використання методів «Злиття вершин» та «Заокруглення».

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

    Мал. 5 Демонстрація відмінності сфер із трикутних та чотирикутних полігонів

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

    методи

    Мал. 6 Порівняння високополігональної моделі кружки (246 граней) і низькополігональної (50 граней).

    Для того щоб оцінити ефективність оптимізації високо деталізованих 3D моделей, була створена сцена з різних типів об'єктів, до яких були застосовані описані вище методи та алгоритми.

    create

    Мал.7 Оптимізована сцена для запуску на пристроях з низькою кількістю обчислювальних ресурсів.

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

    оптимізації

    Мал. 8 Графік навантаження на центральний та графічний процесор до та після оптимізації

    Висновок

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