Кастомная подсистема тирейна

Speed Tree : Terrain & Trees.

Кастомная подсистема тирейна

Сообщение nothaker 14 дек 2017, 20:48

Доброго времени суток, уважаемые старожилы. Прошу вашей помощи в решении концептуальных вопросов по кастомной подсистеме тирейна.

Базовая задача:
1. Realtime редактирование в пределах высот (2.5d), что почти умеет подсистема из коробки.
2. Хранение материалов (имеется ввиду по оси высот, вроде слоеного пирога).
3. По этому тирейну будет течь 2.5d водичка на базе rendertarget.
4. По дд при модификации тирейна материал (ячейки или воксели, если хотите) не испаряется - его нужно переложить в другое место.

Тирейн нужен довольно большой, скажем 4кв.км.

Есть три основные проблемы:
1. Очень не хочу делать велосипед. Хочется прикрутить к существующему тирейну просто другой семплер данных (TerrainData), который будет основываться на каком-то источнике. Проблема в том, что тирейн из коробки странно себя ведет при изменении высот в realtime - они пишутся прямо в источник. Такое ощущение, что метод SetHeights для realtime вообще не предназначен. У кого какой опыт с этой частью функционала - что скажете?
2. Источник данных. Слои (каналы текстур alpha maps) юзать нельзя, ибо 4 п. задачи мне создаст много неразрешимых проблем. Посему ток велосипед SVO (разряженное октодерево), которое я не представляю как реализовать в C# без unsafe режима. Мог бы кто-нибудь подсказать хороший пример конкретно C# SVO, может быть даже для Unity?

Приветствую любые мысли, заранее спасибо.

P.S. Особо не пинайте. Варюсь кодером долго, но в Unity новичок.
nothaker
UNец
 
Сообщения: 27
Зарегистрирован: 28 апр 2013, 00:31

Re: Кастомная подсистема тирейна

Сообщение waruiyume 14 дек 2017, 21:00

1 Просто догадка: так нельзя сделать "terrain.blaBla = Instantiate(terrain.blaBla)"?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Кастомная подсистема тирейна

Сообщение nothaker 14 дек 2017, 21:16

waruiyume писал(а):1 Просто догадка: так нельзя сделать "terrain.blaBla = Instantiate(terrain.blaBla)"?


Как я до этого не допер?! [curved_hands]

Если серьезно, то костылями выложена дорога в тормоза. Я предположил, что SetHeights придумано для редактора, а не для Realtime. Может много чего пересчитывать придется - я кухни коробочного тирейна не знаю, бо закрыто-заколочено. От коробочного тирейна не откажусь до последнего, если чо. Но за ответ действительно спасибо.
nothaker
UNец
 
Сообщения: 27
Зарегистрирован: 28 апр 2013, 00:31

Re: Кастомная подсистема тирейна

Сообщение nothaker 15 дек 2017, 13:18

Нашел имплементацию, даже для Unity, специально для таких как я, хоть и сильно не оптимизированную по памяти. https://github.com/Nition/UnityOctree.
Всем спасибо.
nothaker
UNец
 
Сообщения: 27
Зарегистрирован: 28 апр 2013, 00:31


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

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

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