Статьи

Ландшафт в Unity3D. Частина 2. Імпорт карти висот в Photoshop. Редагування зображення в форматі RAW в Photoshop. Збереження у форматі RAW. Імпорт карти висот в Unity3D. Створення ландшафту з карти висот.

  1. Освітлення зображення в Photoshop з використанням Авто-контрасту і Авто-тону з метою «проявити» (зробити...
  2. Збереження зображення карти висот в Photoshop у форматі RAW 16-bit в градаціях / відтінках сірого (grayscale)
  3. Імпорт карти висот в Unity 3D
  4. Що потрібно зробити, щоб «знизити» террейн в Unity 3D

Дана стаття - урок присвячена тому, як імпортувати карти висот у форматі RAW в Adobe Photoshop, а також основам роботи в Photoshop з зображеннями карт висот, збережених в 16-бітному режимі в градаціях / відтінках сірого. В даному уроці ви дізнаєтеся, як «виявляти» / освітлювати зображення на полотні з метою побачити «невидиму» карту висот, щоб мати можливість її редагувати. Даний урок також включає збереження карти висот у форматі RAW (16bit grayscale), який розуміє Unity3D. Дана частина серії уроків закінчується імпортом текстури карти висот в Unity3D і побудовою на її базі ландшафту.

Ви можете підтримати автора проекту , Пожертвувавши йому суму (скільки вважаєте за потрібне і можливим) на розвиток сайту.

Отримуючи пожертвування автор сайту приділяє менше часу на сон і більше - на написання уроків і статей :). Дякуємо!

Імпорт карти висот в Photoshop

Отже, ми експортували карти висот з Unity3D, давайте тепер відкриємо його в одному з графічних редакторів, наприклад, Adobe Photoshop. Через стандартне меню відкриття файлів (File -> Open) або шляхом перетягування файлу в вікно Фотошопа відкриваємо файл з експортованої картою висот і нам відкривається меню налаштувань формату RAW "Photoshop Raw Option". Розмір імпортованого в Фотошоп зображення, як правило, додаток вибирає саме, в Гашем випадку - 257 на 257 пікселів.

Якщо цього не відбулося, то виставте параметри імпортованого зображення (карти висот), відповідні вирішення / розміром карти висот в Unity3D в розділі "Resolution". Встановлюємо кількість шарів "Count" в розділі каналів "Channels" рівним одиниці (1), а бітность зображення - рівну шістнадцяти бітам (16 Bits), а формат - IBM PC. Розмір заголовка "Size" для заголовка RAW в розділі "Header" виставляємо в нуль (0). Тиснемо кнопку "OK" і бачимо замість карти висот - Чорний квадрат Малевича.

Дана стаття - урок присвячена тому, як імпортувати карти висот у форматі RAW в Adobe Photoshop, а також основам роботи в Photoshop з зображеннями карт висот, збережених в 16-бітному режимі в градаціях / відтінках сірого

На малюнку показано меню налаштувань імпорту зображення у форматі RAW і імпортована карта висот в Adobe Photoshop.

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

Освітлення зображення в Photoshop з використанням Авто-контрасту і Авто-тону з метою «проявити» (зробити видимої) карту висот

Давайте спробуємо використовувати інструмент швидкої корекції тони Автотон / Auto Tone, вибравши відповідну вкладку в меню зображення "Image" головного меню або натиснувши клавіші Shift + Ctrl + L. Того ж ефекту можна досягти, скориставшись хто стоїть поруч в меню "Image" інструментом автоконтраст / Auto Contrast або натиснувши комбінацію гарячих клавіш Alt + Shift + Ctrl + L.

Того ж ефекту можна досягти, скориставшись хто стоїть поруч в меню Image інструментом автоконтраст / Auto Contrast або натиснувши комбінацію гарячих клавіш Alt + Shift + Ctrl + L

На малюнку показана імпортована в Фотошоп карта висот після застосування інструменту автоконтраст в Фотошопі (або після застосування інструменту Автотон).

Ось і проявилася наша карта висот. Зернистість карти висот обумовлена ​​невеликим дозволом карти висот (всього 257 x 257 пікселів) і більш ніж триразовим її збільшенням у вікні програми Фотошоп.

Чому ж не видна була імпортована карта висот відразу після її імпорту в Фотошоп? Вся справа в тому, що ми поставили висоту ландшафту рівній 600 одиницям / юнитам в Unity 3D, а висота наших піків (пагорбів і гір) не добирає і до 15 одиниць / метрів в Unity3D.

Вся справа в тому, що ми поставили висоту ландшафту рівній 600 одиницям / юнитам в Unity 3D, а висота наших піків (пагорбів і гір) не добирає і до 15 одиниць / метрів в Unity3D

На малюнку показана модель стандартного примітиву 3D куба в Unity 3D, розтягнута по висоті до 15 одиниць / юнітів / метрів, нижній торець якої встановлений на поверхню ландшафту, тобто нульові координати ландшафту збігаються з координатами вершин нижнього квадрата куба.

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

Як кажуть:

- Бачиш ховраха?

- Ні!

- І я не бачу. А він є.

З фільму "ДМБ".

Збереження зображення карти висот в Photoshop у форматі RAW 16-bit в градаціях / відтінках сірого (grayscale)

Отже, давайте подивимося, що ж буде, якщо використовувати в Unity3D змінену нами в Фотошоп карту висот. Для цього нам буде потрібно експортувати карту висот у форматі RAW, який розуміє Unity. Щоб експортувати карту висот, в Фотошопі виберіть вкладку "File" (Файл) в головному меню вкладку, після чого в випадаючому меню виберіть вкладку збереження "Save As ..." (Зберегти як ...). Змініть формат файлу для збереження карти висот на "Photoshop RAW (* .RAW)" і натисніть кнопку "Save" (Зберегти), щоб відкрити меню налаштувань / опцій формату RAW. В даному меню виберіть 0 для заголовка файлу RAW (Header) і "IBM PC" в розділі "Byte Order", щоб визначити послідовність байтів (порядок проходження байтів). Даний розділ "Byte Order" доступний тільки для 16-бітових зображень, при збереженні RAW файлу в форматі 8 біт на канал (8 Bits / Channel) даний параметр не використовується.

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

На малюнку показаний процес експорту зображення у форматі Photoshop RAW для карти висот в Unity 3D.

Імпорт карти висот в Unity 3D

Прийшов час імпортувати в Unity 3D нашу змінену в Фотошопі карту висот для побудови з неї нового террейн.

Для того щоб була можливість порівняти створений террейн з імпортованої зміненої карти висот в Unity 3D, давайте не будемо видаляти старий террейн, а створимо новий. Створіть новий террейн, як ми це робили на початку статті.

Не обов'язково. Виберіть террейн Лівою кнопкою миші і відкрийте меню "Terrain Settings" у вкладці "Terrain" Інспектори (Inspector). Ви можете виставити (хоча і не обов'язково, оскільки параметри габаритів і дозволу карти висот будуть задані параметрами імпорту карти висот, а інші параметри можуть бути змінені відразу після імпорту карти висот, АЛЕ до початку розфарбовування террейн і розстановки трави і дерев) ті ж настройки для террейн в розділі дозволу "Resolution", що і для вашого першого террейн: Terrain Width = Terrain Length = 100 одиниць, Terrain Height = 600 одиниць, Heightmap Resolution = 257 пікселів, інші параметри, як було тільки що сказано, такі як Detail Resolution ( відповідає за разреше ня карти окремих острівців трави Detail Resolution Map), Detail Resolution Per Patch (відповідає за розміри квадратів островів, отрісовиваємих за один draw call), Control Texture Resolution (визначає розмір карти змішування текстур террейн "splatmap"), Base Texture Resolution (визначає дозвіл композитної текстури, що використовується при видаленні точки спостереження від террейн або на слабких комп'ютерах) ви можете налаштувати, а можете залишити, як є.

Для того щоб створити террейн з нової карти висот в Unity 3D, необхідно імпортувати її (змінену і збережену в форматі RAW) для щойно створеної заготовки для террейн. Щоб це зробити, натисніть в розділі "Heightmap" кнопку "Import Raw", щоб відкрити меню імпорту карти висот у форматі RAW "Import Raw Heightmap". Виберіть змінену в Фотошопі карту висот і натисніть кнопку "Open", щоб відкрити меню імпорту карти висот "Heightmap", в якому виставте всі ті ж параметри, що ви встановлювали при експорті карти висот, тобто бітность зображення RAW "Depth" виставте в 16 біт (Bit 16), для ширини "Width" і висоти "Height" зображення карти висот - по 257 для кожного параметра, для послідовності біт "Byte Order" виберіть "Windows", прапор-галочку навпаки Flip Vertically не ставте. Призначте ширині Z і довжині X террейн в розділі "Terrain Size" цього ж меню імпорту карти висот виставте кожної по 100 одиниць, а для висоти террейн Y виберіть 600 одиниць, як і у першого террейн, з якого була знята оригінальна карта висот. Натисніть кнопку "Import", щоб імпортувати карту висот.

На малюнку показані процес імпорту карти висот в Unity3D і два террейн: оригінальний (ліворуч), з якого знімалася неизмененная карта нормалей, і вийшов (праворуч) з імпортованої карти висот, "освітленої" в Фотошопі за допомогою інструменту Автоконтраст "Auto Contrast" (або інструмент Автотон "Auto Tone").

Як ви можете бачити на малюнку, що вийшов з імпортованої карти висот ландшафт / террейн більше схожий на бурульку, ніж на горбисту місцевість. Чому так сталося? Вся справа в тому, що використання в Фотошопі інструментів Автоконтраст "Auto Contrast" або інструмент Автотон "Auto Tone" призвело до сильного освітленню освітленні карти висот, а відповідно до теорії карт висот, описаної в статті Створення карти нормалей (normal map), карти зміщення (displacement map), карти затінення / освітлення (ambient occlusion map), самоовещенной карти нормалей і карти відображень / блиску (specular map) з текстури або карти висот (heightmap) для ігрових движків на прикладі Unity3D. Частина 2. Теорія карт висот , Білий колір на карті висот відповідає найвищій точці ландшафту, а чорний колір відповідає найнижчій точці ландшафту.

Що потрібно зробити, щоб «знизити» террейн в Unity 3D

Щоб виправити ситуацію, необхідно в меню "Terrain Settings" у вкладці "Terrain" Інспектори (Inspector) в розділі "Resolution" знизити максимальну висоту ландшафту з 600 одиниць до 12 одиниць, як в моєму випадку.

Щоб виправити ситуацію, необхідно в меню Terrain Settings у вкладці Terrain Інспектори (Inspector) в розділі Resolution знизити максимальну висоту ландшафту з 600 одиниць до 12 одиниць, як в моєму випадку

На малюнку показаний ландшафт, створений з карти висот в Unity 3D, після зміни максимальної висоти террейн (Terrain Height).

Після зміни максимальної висоти террейн створений з зміненою карти висот террейн став схожий на початковий террейн, з якого знімалася карта висот. Чому я написав схожий, а не ідентичний? Напевно, ви вже й самі це зрозуміли: самі верхівки нового террейн виявилися обрізані при "освітленні" карти висот в Photoshop все тими ж автоконтраст і автотонно. Зміна максимальної висоти террейн ні до чого не приведе, крім як до розтягування террейн по висоті.

Щоб розібратися, як з цим боротися і як це виправити, буде розказано в наступних уроках даної серії, зокрема, в /// статті, присвяченій теорії битности зображень, включаючи зображення у форматі RAW grayscale, які розуміє система імпорту карти висот в Unity 3D .

Підтримайте автора проекту. Зробіть пожертву на підтримку і розвиток сайту.

Автор: Максим «MANMANA» Голдобин

[email protected]

Post Views 8 787

Але де ж наша красива карта висот, відповідна піках (холммам і горам) і западин (ямах, ущелинах, каньйонах, дну озер, річок і океанів), створеним в Unity3D?
Чому ж не видна була імпортована карта висот відразу після її імпорту в Фотошоп?
Чому так сталося?
Чому я написав схожий, а не ідентичний?

Новости