Как создать Туман Войны, есть идеи?

Здравствуйте, делаю RTS на Unity3D, дошло дело до Тумана Войны. Пошарив в интернете увидел много, как на мой взгляд, "быдлокодерских" вариантов реализации. Из них хотелось бы выделить боле-мение достойные:
1. Берем текстуру, размещаем выше земли и делаем отверстия(alpha) в нужных местах при помощи шейдера.
2. Заполнить всю карту триггерами и в зависимости от пересечения колайдерами наносить туман.
3. Берем две текстуры, тумана и карту высот, размещаем выше земли и делаем отверстия в нужных местах с учетом карты высот.

Первый и третий способ меня устраивает по своей реализации, но не хватает функционала... Например, если стоит "дерево", то туман должен исчезать только между юнитом и деревом, но не за ним(деревом). В третьем способе можно динамически наносить/удалять "деревья" с карты высот, но не будет ли это требовательно к ресурсам? Насколько я понимаю, нужно будет перебирать все точки текстуры между позицией юнита и текущем пикселем в поиске преграды, а юнитов может быть много и смотреть они тоже могут далеко...
Второй меня устраивает по функционалу, но не реализацией... Тот же пример с деревом, чтобы учесть эту ситуацию можно пустить луч к триггеру, если он дошел к нему, то открываем туман, если нет то ничего не меняем. Если юнитов будет много, то всё это превратится в ад из триггеров, колайдеров и лучей.

Сейчас Я больше склоняюсь к модернизации первого или третьего способа.
Есть ли еще какие нибуть приличные реализации?

UPD. Вот схемка для пояснения ситуации с деревом.
0db00eeda7c747dbb202b08f8c7d63b6.png
  • Вопрос задан
  • 6142 просмотра
Решения вопроса 1
CENTUR10N
@CENTUR10N
Как вариант, что если к каждому юниту прикрепить дополнительный объект, нужного размера круг с тегом, который делает его невидимым для основной камеры, но видимым для дополнительной, которая рендерит эти объекты в текстуру через Render Texture? Потом можно использовать полученную текстуру для шейдера тумана. Эти "круги" могут уже иметь полупрозрачности и более сложную форму. По идее должно все быстро работать, но нужно Unity Pro. Я так понимаю, что это и есть практически ваш первый вариант, может пригодится.

Опишите пожалуйста подробнее ваш пример с деревом, не сильно понял.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@wlastas
unity fog of war смотрели? неплохо все расписано и работает как надо
www.youtube.com/watch?v=x40TDCjC4DY
www.youtube.com/watch?v=tV6vcn2Ndec

в вашем случае(как на рисунке) походу туману быть не должно - вы видели хоть одну rts где деревья дают такой эффект? а если деревьев несколько? вся зона видимости будет в тенях от стволов? А если наш юнит не один, и они стоят под разными углами к дереву? Может быть просто вычислять, какой из вражеских юнитов не виден не одним союзником и давать ему 100% прозрачность например, а туман открывать сразу на радиус обзора (так и реализовано в примере по 2 ссылке)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы