Вариант использования Terrain'а

Speed Tree : Terrain & Trees.

Вариант использования Terrain'а

Сообщение TimmyMulla 11 июн 2010, 14:17

Возникла у меня потребность вставить в карту, так сказать, динамическое дерево. Т.е. дерево, которое можно заменить на другое в зависимости от определенных критериев. При этом хотел, чтобы это был объект именно террейна (чтоб в билборд превращалось). Бадался долго. Всяко пытался это провернуть. Получилось достаточно странным способом :)

Создаете террейн размером 1х1, разрешения хайтмапов и прочего ставите в минимальные значения. На террей втыкаете дерево. Из полученного создаете префаб.

Так вот. Если вместо модели дерева воткнуть на маленький террейн любую другую модель (дом, забор итп), но именно как дерево, - объект будет превращаться в билборд :)

Может кому пригодится.
Аватара пользователя
TimmyMulla
UNец
 
Сообщения: 47
Зарегистрирован: 13 фев 2010, 10:07
Откуда: Екатеринбург

Re: Вариант использования Terrain'а

Сообщение 3Dragon 11 июн 2010, 15:00

ИМХО, создание лодов ручками будет гораздо оптимизированнее =)
Глаза боятся, а руки - крюки.
3Dragon
UNIт
 
Сообщения: 61
Зарегистрирован: 25 ноя 2009, 21:50
Откуда: Санкт-Петербург
  • ICQ

Re: Вариант использования Terrain'а

Сообщение Левш@ 11 июн 2010, 15:09

Еще при таком способе будут проблемы с шейдерами и анимацией (например двери).
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Вариант использования Terrain'а

Сообщение TimmyMulla 11 июн 2010, 15:17

Ну, я понимаю, что полноценный дом так не воткнуть. Но мелочи-то можно. Особенно, когда этих мелочей много и они одинаковые.
К примеру, забор. Террейн + модель + коллайдер (ежели нужен). В префаб. И размножить.

Сейчас сижу, думаю, как все это протестировать.

Результ в студию, по завершению, предоставлю.
Аватара пользователя
TimmyMulla
UNец
 
Сообщения: 47
Зарегистрирован: 13 фев 2010, 10:07
Откуда: Екатеринбург

Re: Вариант использования Terrain'а

Сообщение TimmyMulla 26 июл 2010, 08:33

В общем так.
Погонял разные варианты и установил: добавление одного террейна в сцену (когда его видно) в редакторе снижает fps на ~10. Что, как вы понимаете, не есть гут :)
Так что, затея не очень.
Аватара пользователя
TimmyMulla
UNец
 
Сообщения: 47
Зарегистрирован: 13 фев 2010, 10:07
Откуда: Екатеринбург

Re: Вариант использования Terrain'а

Сообщение Neodrop 26 июл 2010, 10:01

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

Re: Вариант использования Terrain'а

Сообщение skynet 30 июл 2010, 14:53

А зачем же такие извращения то делать с дверями. для переключения в импостеры просто срабатывает шейдер который работает с обьектами переданными в TreePrototypes[].

Если сильно захотеть и повозится, можно ведь написать свой, который будет работать с другими объектами.
Вот правда не известно что они поменяли в шейдерах да и сами шейдеры террайна менялись ли.

Тогда у меня должно быть примерно -2.5к% производительности,а в конечном варианте итого больше. Одно скажу, что сделать динамически подгружаемые террайны (через ассинхронную загрузку кажодго террайна как сцены) особенно если их много, с травой, деревьями 5+ текстурами, объектами и чтобы это все грузилось без глюков\тормозов и прекрасно работало - тут уже [unity 3D] не предназначен для этого.
The Truth Is Out There!
Аватара пользователя
skynet
UNец
 
Сообщения: 11
Зарегистрирован: 11 янв 2010, 11:12

Re: Вариант использования Terrain'а

Сообщение Neodrop 30 июл 2010, 16:15

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

Re: Вариант использования Terrain'а

Сообщение skynet 02 авг 2010, 09:58

К.О. подсказывает мне, что я делаю что-то не так раз подтормаживает.

Загружено более 250 террайнов(сцен) 1х1км каждый по измененному примеру из StreamingWorldDemo (не помню как там он назывался). При быстром перемещении ~500км\час не совсем успевает оно подгружать их плавно. Если это все тестирую в эдиторе, то неоднократно срабатывает пауза на варнинг:

PersistentManager.Lock stalled main thread.
UnityEngine.WWW:get_assetBundle()
The Truth Is Out There!
Аватара пользователя
skynet
UNец
 
Сообщения: 11
Зарегистрирован: 11 янв 2010, 11:12

Re: Вариант использования Terrain'а

Сообщение Neodrop 03 авг 2010, 05:33

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

Re: Вариант использования Terrain'а

Сообщение skynet 03 авг 2010, 09:16

Спасибо за совет, попробую использовать 2х2км.

Ну если не учитывать TerrainCollider находящийся на террейне, то других коллайдеров в бандлях нет.

Так и делается, чтоб был запас дистанции и подгружалось за пределами Far Clip distance.
Но для уменьшения количества занимаемой памяти да и размера сцены есть ближний план, допустим 10х10км, в котором отображаются террейны с N количеством текстур, деревъев, травы, объектов и прочего, а дальний план 10+ - 20км это куски с меньшей картой высот, без объектов да и с всего одной текстурой (подобие или просто вшитая base texture).

Cоответственно даже если не видно подгрузку на дальнем плане, то на переднем всеже иногда бидбида происходит.
The Truth Is Out There!
Аватара пользователя
skynet
UNец
 
Сообщения: 11
Зарегистрирован: 11 янв 2010, 11:12

Re: Вариант использования Terrain'а

Сообщение TimmyMulla 05 авг 2010, 16:22

Да Бог с вами, Нео :)
Какие -160%? Я про fps писал, а не про проценты.
В моем простеньком тесте (руками, без выпендрежа и прочей автоматизации), чисто эмпирическим путем было выявлено падение производительности на ~10 fps. И то в Editor'e.
Использовать террейн в тех целях, которые я обрисовал выше, при таких показателях, не имеет смысла.
Вот собственно.

А вот про шейдеры я не подумал... Надо поковырять.
Аватара пользователя
TimmyMulla
UNец
 
Сообщения: 47
Зарегистрирован: 13 фев 2010, 10:07
Откуда: Екатеринбург


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2