Особенности работы с Unity3d TerrainEngine

Speed Tree : Terrain & Trees.

Особенности работы с Unity3d TerrainEngine

Сообщение gnoblin 18 фев 2009, 22:44

Мы собрались сотворить мир из картинки!
Это будет история о чести и доблести, прямых руках и [unity 3D] Unity3D версии 2.1 Соберемся же с мыслями и возьмемся за дело!..
[Авторы: Neodrop&Gnoblin]

Часть 1.

Существует несколько сложностей при использовании инструментария [unity 3D] Unity terrain Engine, о которых хотелось бы упомянуть. Все замечания применительны к текущей версии [unity 3D] Unity 2.1
Открываем имеющийся хайтмап в разрешении 4096х4096 px в формате .tga в Adobe Photoshop CS2:

Изображение

Нажимаем “save as”, выбираем формат Photoshop Raw (.RAW):

Изображение

На скриншоте видно, что нам предлагается выбрать, каким образом сохранить каналы изображения (interleaved\non-interleaved). ВНИМАНИЕ! Если вы видите аналогичную менюшку – это признак того, что вы кое-что упустили. Для [unity 3D] Unity нам нужно 8bit либо 16bit изображение с одним каналом…
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Особенности работы с Unity3d TerrainEngine

Сообщение gnoblin 18 фев 2009, 22:48

Необходимо отметить, что вначале я немного тупил, соблюдал не все необходимые условия и, как и следовало ожидать, получал вот такие забавные результаты:

Изображение

Другой ракурс:

Изображение

Что не так …
Еще попытка (на данном этапе я немного сгладил изображение, в надежде, что это исправит «лезвия»):

Изображение

Ракурс по-ближе:

Изображение

Теперь вспоминаем о том, что нам нужно (8\16 bit, 1 канал).
Сначала устанавливаем битность канала:

Изображение

И затем, либо переводим изображение в Grayscale (в том же меню, что и на скриншоте выше), что автоматически схлопнет каналы, либо удаляем лишние каналы сами (что, правда, немного изменит яркость хайтмапа - однако, мне кажется, это в данном случае это не критично):

Изображение

Кроме этого, в результате экспериментов было установлено, что наилучшее разрешение для экспорта составляет 512х512 пикселей (исходные 4096х4096 и пробуемые 2048x2048 и 1024x1024 не подошли). Меняем разрешение.
Радуемся и пробуем экспортнуть хайтмап еще раз:

Изображение

Итак, вроде бы все условия соблюдены, однако мы наблюдаем странные непонятные штуки по краям ландшафта:

Изображение

Как несложно догадаться, это получается из-за шумов по краям нашего изображения (которые, возможно, появились, когда мы сглаживали картинку с целью убрать шумы). Хочется убрать еще шумов, поэтому сглаживаем (blur) еще раз, а затем красим внешние границы картинки в черный цвет (canvas size -2,-2; canvas size +2,+2 с пивотом в центре):

Изображение
Изображение

Экспортим хайтмап и получаем:

Изображение

А вот как это выглядит уже с текстурами:

Изображение
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Особенности работы с Unity3d TerrainEngine

Сообщение gnoblin 18 фев 2009, 22:50

Часть 2.

Изображение

При экспорте RAW Height Map, по краям карты мы можем увидеть некрасивые резкие черные тени. Это происходит оттого, что Террайн в этом месте имеет острую как бритва, кромку. Ее лучше сгладить инструментами редактирования.

Изображение

Изображение

Mass Place Trees : этот инструмент дает нам возможность одной командой, высадить (разместить) на нашем Террейне тысячи и десятки тысяч деревьев. НО (!) деревья почему то размещаются преимущественно на : плоских поверхностях (долинах), Вершинах и Впадинах, практически полностью игнорируя склоны гор.

Изображение

Grass : При рисовании травы, мы видим новую траву только на той дистанции, которая установлена в настройках Террайна. Это очень неудобно, потому что зачастую не понятно, есть ли трава вообще или ее нет. Из-за этого возникают множественные ошибки при «засеивании» травой.

Изображение

На это рисунке мы видим, что травы нет и продолжаем ее рисовать.

Изображение

Но в результате получаем это:

Изображение

Поэтому, стоит сразу запомнить, что работать с травой нужно на дистанции, установленной в настройках Террайна (параметр Detail Distance)
Detailed Mesh : В отличие от Деревьев, Detailed Mesh не имеют коллидеров. Поэтому не будем мечтать о простом и удобном размещении сотен скал на берегу. Коллидеры необходимо ставить руками.

Изображение

Текстурирование крутых склонов : В гористой местности, крутые склоны не диковинка. И из-за этого у нас возникает маленькая проблема : на крутых склонах текстуры некрасиво растягиваются.

Изображение

Попробуем этого избежать. Наш склон закрашен текстурой с параметром повторения ( Tiling )
TileX : 75
TileY : 75

Изображение

Чтобы исправить картинку и приблизить ее к реальности, мы добавляем в палитру текстур эту же текстуру еще раз, но меняем настройки тайлинга на
TileX : 15
TileY : 5

Изображение

И получаем более реалистично выглядящую картинку:

Изображение
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Neodrop 14 апр 2009, 00:19

Вот, что вышло в результате:

Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Особенности работы с Unity3d TerrainEngine

Сообщение DISLAYER 11 авг 2009, 19:10

Может это только у меня, но при 8bit у меня тоже были неровности, нормально получается только при 16bit.
DISLAYER
UNец
 
Сообщения: 36
Зарегистрирован: 19 дек 2008, 11:08
Откуда: Латвия

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Neodrop 11 авг 2009, 19:49

Естественно. Ведь при 8 битах, всего 256 значений для высоты пикселя. Это маловато для гладкости.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Vsadnik 11 авг 2009, 19:56

яна 16ти + 10 раз блур ставил. всё равно шероховатость
Не просят - не делай, можешь только предложить...
официальный русский представитель Black Cable Team
Аватара пользователя
Vsadnik
UNIт
 
Сообщения: 142
Зарегистрирован: 21 июл 2009, 22:22

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Courvee 28 апр 2010, 05:58

Извините за глупый вопрос. В начале урока у вас карта высот очень реалистичная. Она сделана каким-то генератором, или руками? Можно вообще узнать поподробнее как сделать хорошую карту высот???
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Garu 28 апр 2010, 07:11

Courvee писал(а):Извините за глупый вопрос. В начале урока у вас карта высот очень реалистичная. Она сделана каким-то генератором, или руками? Можно вообще узнать поподробнее как сделать хорошую карту высот???

Нусс, сам в свое время мозг сломал над террой, и в итоге сошелся на 2х вариантах, которые выдавали относительно сносный результат, не смотря на мою криворукость в рисовании и географический критинизм...
1 - берем ФШ, мутим новую картинку где можно указать относительно шизанутые размеры (зависит от ваших потребностей и возможностей вашего железа) и собсно начинаем - перегонка в грейскейл, перегонка в 16битный режим и понеслася - 1 слой определяет общий уровень высоты, я его гнал темно-серым, далее вырисовываем остров или че вам там нужно - белым цветом, далее выставляем дикую прозрачность, тем самым получая основание для всего - плоский остров который не очень выделяется из воды... Ну а дальше, клонируя слоя и играя с прозрачностью, можно получить вполне рельефный остров... Ну и горы так же вырисовать... Но тут нужно хоть как-то уметь рисовать, лично у меня этим способом получались окопы вместо тропинок итд итп...
2 - почти тож самое, только потом эту фиговину всю пихаем в Геоконтрол2 и там поигравшись с настройками подгоняем удобные для нас "шумы" в плане эрозии почвы итд итп... Так у меня получился относительно реалистичный ландшафт, по заданным кускам (т.е. где нужен холм, там холм, где впадина там впадина)... Но увы, не скажу что ландшафт красив и идеален на все 100...
Аватара пользователя
Garu
UNITрон
 
Сообщения: 199
Зарегистрирован: 13 авг 2009, 18:26

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Courvee 28 апр 2010, 10:00

Спасибо большое. Ушел разбираться с геоконтрол до конца.
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Garu 28 апр 2010, 13:51

Courvee писал(а):Спасибо большое. Ушел разбираться с геоконтрол до конца.

Опять же - это не панацея... Но все же относительно сносно... В идеале найти человека, который занимается ландшафтами, а там хоть хаймап-художник, хоть тот кто в максе все штампует... Хотя, все зависит от потребностей...
Аватара пользователя
Garu
UNITрон
 
Сообщения: 199
Зарегистрирован: 13 авг 2009, 18:26

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Courvee 10 май 2010, 14:05

Почему же не панацея? Я выработал для себя отличный алгоритм. Сначала создаем в фотошопе файлик, размеров 513х513 пикселей, затем заливаем черным, и белой кистью на слоях с прозрачностью рисуем места где нам горы нужны, где ущелья и т.д. получится не реалистично, но то, что хочется в общей картине. Сохраняем в джпег, и идем в геокнтрол2. Выставляем нужные настройки, например ширина - 2км, высота 600 метров, стандарты из юнити. Затем загружаем созданную нами картинку. Основа ландшафта уже есть. Затем добавляем несколько фильтов, и получаем очень реалистичный ландшафт, с нужной нам формой. Под конец можно добавить реки или еще что то. Результат меня устравивает на все 100%. К сожалению не могу выложить картинку, потому что пишу не со своего компа, и картинок тут нет. Попробуйте. Может вам понравится.
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Garu 10 май 2010, 16:12

обственно гдет так и делал, но, есть маааленькая фиговинка в этом решении - много слоев приходилось делать для аппетитного ландшафта, и потом - большую терру не шлепнуть, в ГК2 лимит 4096х4096 пикселей... 8х8 кусков... даже растянемс под 256 (хотя это уже не вкусно) и тогда 16х16 кусков и в лучшем случае это 32х32км щупленькой терры... или 16х16 сносной... не густо... а делать в несколько общих кусков - сшивка... тоже "позитив" на сфинктер...
Аватара пользователя
Garu
UNITрон
 
Сообщения: 199
Зарегистрирован: 13 авг 2009, 18:26

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Tutanhomon 12 май 2010, 10:18

для генерации ландшафтов я бы посоветовал бесплатную программу terragen, которая вобщем то предназначена для создания фотореалистичных изображений ландшафтов, но она еще умеет генерировать случайные хайтмапы, причем генерация настраиваема. Также есть экспорт в Raw формат.

main.jpg


generate.jpg


вот оффсайт программы

надеюсь будет полезно, когда то очень много времени убил на эту прогу, уж очень красивые штуки там можно делать. :-bd
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
Tutanhomon
UNIт
 
Сообщения: 112
Зарегистрирован: 04 дек 2008, 19:55
Откуда: Минск
  • Сайт

Re: Особенности работы с Unity3d TerrainEngine

Сообщение Courvee 12 май 2010, 11:31

Garu, скажи, а нафига тебе 32км на 32 км??? Или ты собрался авиасимулятор делать? Если да, то есть много программок, которые сделают тебе большой ландшафт, а если что то другое, то переосмысливай свой проект. Такие большие локации никому не нужны...
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

След.

Вернуться в Земля и деревья.

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1