Оскар Едлунд (Oskar Edlund) розповів про створення свій останній сцени «Скандинавський ліс» (Nordic Forest). Це приголомшливий проект, створений на UE4 за допомогою фотограмметрії. У цьому матеріалі художник дає кілька корисних порад про моделювання пейзажів, створення моделей, роботі з рослинністю і зйомці фотографій для 3D-сканів.
Оригінальний матеріал можна почитати тут .
Про фотограмметрії за допомогою програми Agisoft Photoscan можна почитати тут .
Привіт! Мене звуть Оскар Едлунд, і я 3D-художник зі Швеції, який в даний момент навчається мистецтву створення 3D-сцен в стокгольмської школи FutureGames . Раніше я працював інтерном в Arrowhead Game Studios . Це маленька студія, що базується в Стокгольмі і працювала над іграми на кшталт Helldrivers і Gauntlet .
Мені завжди були цікаві нові техніки створення оточення, і я хотів спробувати фотограмметрию ще з моменту її появи - по суті, вам потрібна лише пристойна камера і місце для зйомок. На щастя, я виріс практично посеред лісу в північній Швеції, де таких місць буквально ставок-гати.
Спершу я зібрав кілька фотографій і зробив з них муд-борд. Це дозволило мені дотримуватися того, яку сцену я хочу зробити, а також враховувати, до яких місцях у мене є доступ.
Піймавши потрібну атмосферу, я відправився в ліс за знімками, щоб потім використовувати їх для створення модульних об'єктів. Я шукав об'єкти, які добре виглядали б один з одним, а також намагався мислити нестандартно і трохи покреатівіть з оточенням. Наприклад, я хотів зробити кам'яну стіну, однак не знайшов таку і в підсумку зробив фотографії кількох каменів, а потім перетворив їх в стіну.
Для модульних моделей я фотографував об'єкти на кшталт мшиста каменів, стовбурів дерев і різного сміття, що лежить на землі. На кожен об'єкт йшло від 30 до 100 фотографій - я робив знімки з усіх можливих кутів, тому кількість фотографій залежало від складності об'єкта. Потім я користувався Autodesk Remake, щоб зробити з цих фотографій сітки і текстури. Якщо ви новачок в фотограмметрії, то я дуже раджу цю програму, тому що вона досить проста.
Нижче - приклад того, як відбувається процес конвертації ськана в нізкополігональную сітку всього за пару хвилин за допомогою ZBrush .
Зліва зображено скан з текстурами, а поруч з ним - відсканована високополігональні сітка всередині ZBrush. Щоб знизити шум в сітці і спростити процес конвертації в лоу-поли, я використовував кілька різних полірувальних налаштувань. Цей метод особливо ефективний з об'єктами, у яких мало середньорозмірних деталей - їх можна просто запекти в текстуру.
Пополірувавши високополігональні сітку, я зробив нізкополігональную базу, для чого використовував функцію Zremesher. Я виставив значення в «Target Polygons Count» на «0.5» і трохи знизив настройку «AdaptiveSize» - щоб у мене була однорідна топологія, оскільки для фінального результату я хотів використовувати шейдер замощення. Потім я виконав ще 3 етапи: по-перше, за допомогою кнопки «Divide» збільшив кількість полігонів на 4, по-друге, за допомогою кнопки «ProjectAll» спроектували модель назад на високополігональні версію, і по-третє, за допомогою тієї ж «Divide »поділив кількість полігонів на 4.
Врахуйте, що це, можливо, не найкращий спосіб. Я скористався ним, тому що мені потрібно було швидко зробити нізкополігональную сітку, щоб потім доробити і оптимізувати її в Maya. Коли ви обробляєте велику кількість об'єктів за дуже короткий час, доводиться думати на ходу.
Крім того, я видалив з відсканованої текстури майже весь спрямований сонячне світло, тіні і об'ємне затінення, оскільки отримати потрібний результат прямо з фотографії - це майже неможливо.
Щоб позбутися від об'ємного затінення, я інвертовану зелений канал із запеченої карти нормалей і, виставивши низьку прозорість, помістив його поверх карти альбедо. Потім я поворушив настройки в Image> Adjustments> Shadows / Highlights, поки текстура не почала виглядати, як мені того хотілося.
На зображенні вище показані настройки, які я використовував в UE4 для текстур. Завдяки їм я міг просто перекидати унікальні текстури з однієї моделі на іншу. Крім того, я б рекомендував використовувати плиткові текстури - щоб об'єкт виглядав добре, навіть якщо камера буде до нього зовсім близько. Я в своїх матеріалах цих деталей не додавав, але якщо повернуся до проекту, то обов'язково цим займуся.
Я використовував в UE багато текстур зі світовими координатами і маскував їх за допомогою верхових квітів, тим самим змішуючи ці об'єкти з оточенням. Мова, наприклад, про моху поруч з каменями. Це дозволило мені позбутися від більшості швів в моєму маленькому світі.
Я вже говорив, що хотів зробити кам'яну стіну, але в плитковій вигляді і в якості складових елементів використовуючи об'єкти з реального світу, властивістю плиткового не володіють. Це було непросте завдання, яка вимагала пари експериментів.
Я почав з того ж процесу, який описав вище. Потім я розділив нізкополігональних моделі, які мали запечені текстури і поки не були плитковими, на різні сегменти, які можна було б використовувати далі. В цьому випадку відсканований об'єкт був зроблений з різних каменів, тому я розбив всі камені на окремі об'єкти. Потім я пересобран ці камені за допомогою сітки (grid) в Maya. Таким чином у мене вийшла кам'яна стіна, але вже в плитковій вигляді.
Щоб позбутися від текстурних швів між пересобран камінням, я використовував Mudbox і з його допомогою клонував текстуру. Я також скористався розфарбуванням вершин, щоб змішати камені з текстурою моху, що має світові координати.
Цей метод використовувався, щоб зробити кам'яну стіну, що стоїть поруч з дорогою.
Коли я робив матеріали зі світовими координатами, то диффузную карту, карту нормалей і карту висот запікав з різних сканів. Потім я відкривав Photoshop і робив на їх основі плиткові текстури. Зробивши це, я робив карту нерівностей з карти альбедо. Таким чином, у мене був повний контроль над деталями в цих структурах.
Я вибрав фотограмметрию, тому що хотів зробити дуже деталізовану лісову сцену, але як можна швидше. Це була моя перша спроба роботи з фотограмметрії, і мені було цікаво, як далеко я зможу зайти. Мені здається, останнім часом фотограмметрія стає все популярнішим, і багато студій вже використовують її в своїх іграх. Непоганий приклад - це DICE і їх Star Wars Battlefront.
Мій досвід показав, що фотограмметрія - це відмінний спосіб дуже швидко домогтися реалістичною картинки, проте це все ж не панацея. Суть методу в тому, щоб комбінувати нові техніки з традиційними. Крім того, мені ще багато чому треба повчитися.
Я фотографував на Nikon D1200 з 50-міліметровим об'єктивом, але для фотограмметрії підійде і будь-яка пристойна камера. Також можу порадити, що фото краще робити в хмарний день, тобто при об'ємному освітленні. Завдяки цьому у вас буде менше мороки з «очищенням» текстур. Для перетворення фотографій в 3D-сітки я використовував Autodesk Remake - завдяки тому, що ця програма досить проста, і у Autodesk є студентські ліцензії, що дозволяють використовувати її софт безкоштовно. Також варто відзначити, що немає сенсу сканувати всі, що виглядає круто. Оцініть, що у вас є, і подумайте, як це можна використовувати в ігровому движку.
Для рослинності фотограмметрию я не використовував. Тут я тільки робив знімки гілок, поміщав їх на синій фон, вирізав листя і соснові голки, а потім робив текстуру з альфа-каналом і підповерхневих текстуру. Карти нормалей я створював з дифузних карт за допомогою Quixel NDO . Всю рослинність я робив в Maya за допомогою площин (plane), за винятком листя на деревах, які були створені в Speed Tree .
Що я робив тут, так це створював сферу навколо рослини, а потім використав її, щоб перенести нормалі її вершин на рослину за допомогою функції «Transfer Attributes» в Maya. Завдяки цьому у мене вийшло більш плавне затінення.
Я моделював площині, намагаючись якомога краще підігнати їх до альфа-текстурі (щоб вони виглядали добре навіть без неї), але при цьому намагаючись не надто захоплюватися з полігонами. Потім я використовував шейдер в UE, щоб текстура з альфа-каналом віддалялася в залежності від відстані між об'єктом і камерою. Завдяки цьому рослини на відстані виглядали як і раніше «густо», хоча площині були лише для 0-го рівня деталізації. Не думаю, що це хороший спосіб для створення рослинності, але це моя перша спроба, і в моєму випадку це спрацювало. Втім, я все ж рекомендую пошукати керівництва, де пояснюється, як це зробити більш толково.
У шейдера для листя немає нічого особливого - це просто стандартний шейдер, з двох сторін обгорнутий картою альбедо, підповерхневої текстурою, картою нормалей і блоком «alpha_fade». Однак в самій сцені він змориться досить непогано для результату, на який я розраховував.
Освітлення в сцені дуже просте - я використовував направлене світло від сонця в поєднанні з сонячним світлом всередині UE4. Потім я зробив світлові акценти в деяких місцях: тут це світлове пляма на дорозі перед камерою і ще одне - в кінці дороги, де я хотів створити сильний композиційний центр.
Композиція дуже проста, але все ж допомагає направити глядацький погляд в потрібному напрямку.
Щоб домогтися фінального результату, я використовував пост-обробку в Unreal Engine 4. Це сильний інструмент, який дуже мені допоміг. Я зробив сильне віньєтування, а також погрався з відтінками, щоб отримати більш тепле світло і зробити тіні темнішими і «холодними».
Ось так сцена виглядає з пост-обробкою і без неї. Різниця на особу.
За підсумком я прийшов до висновку, що UE4 непогано підходить для створення таких сцен, так що я планую використовувати його і далі.
Представництва сайту «80 level» в Twitter і VK .