Страница 1 из 1

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

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

Базовая задача:
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 новичок.

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

СообщениеДобавлено: 14 дек 2017, 21:00
waruiyume
1 Просто догадка: так нельзя сделать "terrain.blaBla = Instantiate(terrain.blaBla)"?

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

СообщениеДобавлено: 14 дек 2017, 21:16
nothaker
waruiyume писал(а):1 Просто догадка: так нельзя сделать "terrain.blaBla = Instantiate(terrain.blaBla)"?


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

Если серьезно, то костылями выложена дорога в тормоза. Я предположил, что SetHeights придумано для редактора, а не для Realtime. Может много чего пересчитывать придется - я кухни коробочного тирейна не знаю, бо закрыто-заколочено. От коробочного тирейна не откажусь до последнего, если чо. Но за ответ действительно спасибо.

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

СообщениеДобавлено: 15 дек 2017, 13:18
nothaker
Нашел имплементацию, даже для Unity, специально для таких как я, хоть и сильно не оптимизированную по памяти. https://github.com/Nition/UnityOctree.
Всем спасибо.