Наш досвід використання фотограмметрії при розробці комп'ютерної гри (Частина 2)

image

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

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

Не довго думаючи ми зібралися і вирушили на один день в невелику 130 кілометрову експедицію, і опинилися в справжній казці!

image

Зйомка поверхонь для створення матеріалів виявилася пов'язана зі своїми особливостями і труднощами. Щоб у кінцевому підсумку отримати цікавий матеріал з розмаїттям деталей, потрібно відзняти досить велику поверхню — хоча б 3х3 метра. При цьому, для отримання високої деталізації матеріалу, необхідно знімати з близької відстані і стежити за тим, щоб сусідні знімки перетиналися, т. є. щоб на сусідніх знімках 50-60% кадру займав один і той же ділянку поверхні (саме це перетин і буде використовуватися в процесі фотограмметрії).

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

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

image

Обробка фотографій для створення матеріалів в цілому нічим не відрізняється від того, що ми описували в попередній частині щоденника, хіба що цього разу у моделей вийшло трохи більше полігонів. Результати фотограмметрії ви бачите вище — високополігональних моделі поверхонь (від 11 до 16 млн трикутників), кожна з альбедо картою розміром 16 384 пікселів.

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

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

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

image

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

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

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

image

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

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

Результати
Ну що ж, настав час підбивати підсумки. Але що ж може розповісти про підсумки фотограмметрії краще, ніж зображення фінальних результатів? Правильно, нічого! Тому рендери фінальних матеріалів чекають вас нижче.

image

image

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

image



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

І ще трохи скріншотів наостанок, щоб розглянути все докладніше.

image

image

image

image

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

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

Ну, а на це у нас поки що все. Залишайтеся з нами і не забувайте ділитися своєю думкою про щоденниках розробки та про розвиток «Lost Story: The Last Days of Earth» в цілому.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.