Войти
Urho3DФорумОФФТОП

Болталка (228 стр)

Страницы: 1225 226 227 228 229 230 Следующая »
#3405
8:50, 20 окт. 2020

Вроде я уже задавал вопрос про fog of war, чем кончилось, не помню.
Так вот, спрошу заново:
- есть несколько юниов, у которых есть радиус обзора
- есть поле, с direct-light, ambient и прочими радостями
- радиусы обзора юнитов создают пересекающееся множество кругов - видимая игроку зона. Юниты могут перемещаться, изменяя область видимости.
- зона, которую ещё не видели, рисуется чёрным (опциональный пункт)
- зона, которая не видима в данный момент, рисуется темнее/серее, без анимаций. Типа "старая фотография"
- есть статические юниты, типа зданий, который должны быть видимы на "старой фотографии", вне зависимости, существуют они ещё там на самом деле или нет
- есть динамические юниты, которые бегают по карте, их на фотографии быть не должно.

+ пример

вопрос, как разделить/отрисовать видимую и невидимую зоны?

тут два пункта:
1. что делать с terrain?
Как затенить "невидимую" часть террайна? Сразу возникает идея - высветлить видимую. Но это как-то не очень: я рисую карту, определёнными текстурами и с определённым светом. А потом мне надо будет самому или на старте затенить всю карту и правильно высветлять видимую часть, чтобы были именно те цвета, которые я задумал. Нет, плохо.

2. что делать с объектами на карте? В некоторых ситуациях объект должен быть на "фотографии", а на самом деле его там нет. Это важно для тех, кто бегает в тени, для них этого объекта нет, и, например, на NavMesh это не влияет. Другое дело, наблюдатель, для него этот объект всё ещё есть и должен влиять на прокладываемый путь до тех пор, пока радиус обзора не увидит "правду". Тоже самое в обратную сторону: появившиеся в тени объекты не должны влиять на NavMesh до тех пор, пока не будут увидены.


#3406
14:30, 20 окт. 2020

StepEver
Напиши свой шейдер, который принимает на вход текстуру тумана, делай что-то в духе стандартного fog, но не по расстоянию, а по значению в текстуре.

#3407
21:20, 21 окт. 2020

StepEver
> 2. что делать с объектами на карте?
Иметь две сцены, видимо. Не думаю, что тут есть какое-то волшебное элегантное решение.

#3408
16:50, 22 окт. 2020

Eugene
> Напиши свой шейдер, который принимает на вход текстуру тумана, делай что-то в духе стандартного fog, но не по расстоянию, а по значению в текстуре.
И это можно как-то распространить на все объекты на карте и на разные виды почвы и камня?
Сёдня вот подумал, может как-то можно поиграть с Zone и Viewport

Eugene
> Иметь две сцены, видимо. Не думаю, что тут есть какое-то волшебное элегантное решение.
А как мне навмеш растянуть на две карты? :(

чип
> а по первому не пробовали источники с отрицвтельным значением света (затемняющие), которые бы не влияли на тени и настроить им жескость границ?
А вроде в урхе нету отрицательного цвета? :)
Не, попробовать можно, но у меня подозрение, что от блендинга отрицательный цвет просто пропадёт. Там же не сложением свет на текстуру кладётся.

#3409
18:51, 22 окт. 2020

StepEver
> А вроде в урхе нету отрицательного цвета? :)
Есть... представьте, да? Отрицательный цвет. Со светлой тенью, все дела... o_O
Не знаю, поможет ли мне это в решении моей задачи, но само по себе это прикольно :)

А так, да, можно делать чёрный direct light, белый ambient и невидимые круги над каждым объектом, которые будут закрыть поверхность от чёрного цвета.
Радио, ты гений! :D

#3410
(Правка: 19:14) 19:02, 22 окт. 2020

Не два мира, а две камеры (классический прием)
Либо рисуем сами. По сути делим карту на ячейки, получается типо массив, ну или текстура низкого разрешения. Там где юнит сейчас, полностью прозрачная. Шейпом рисуем. И в определенный промежуток времени, уменьшаем прозрачность на какой то шаг. Пока прозрачность есть, считаем что это полу-туман, тот участок что якобы известен. не туман. Если прозрачность 255(ну то есть альфа 1) - туман. В тумане ничего не показываем.

В Юнити у камеры есть слои, может и тут есть. Для второй камеры делаем слой и каждому юниту добавляем шейп, который и будет нашей прозрачностью. Делаем чтобы камера рисовала только этот слой.

#3411
9:04, 23 окт. 2020

Salamandr
В Урхе есть маски, а как потом две камеры смешать в одну картинку?
И надо будет посмотреть, есть ли маски для НавМеш

#3412
(Правка: 12:14) 12:13, 23 окт. 2020

Если угол камеры (первой) не меняется. То мы создаём плоскость и закрашиваем текстурой из второй камеры.
Но обычно это редкость. Поэтому каждый юнит или тот кто отвечает за его передвижение смотрит в текстуру тумана при перемещении. И если там не 0 в альфе, прячет свою модель (model view). То есть становится не видимым. То есть, чужие юниты становятся не видимыми, если рядом никого нет. Для зданий почти тоже самое, с одном лишь исключением, прятать их будет тот кто управляет перемещением юнитов игрока.

Это первый пункт. Вторая задача, это показывать то что мы увидели (видим мы юнитами). То есть, мы там когда то были, и наш солдат принес развед-данные что там здание.
Пока он бежал неа базу, ещё кто то напал на то здание (или его решили продать). Но у нас, теперь инфа, что оно там стоит в полу-тумане.
Вариант 1. Делать скриншот этой области и хранить его отдельно или поверх тумана (или под ним). И стирать эту область, если мы туда зашли.
Вариант2. Это отображать не рабочее (то есть без анимаций здание) и в нём хранить что мы его видели. Отображать до тех пор, пока не увидим снова. В общем то тут нюанс только один. Если здание продали или разрушили пока нас тут не было, мы всё равно отображаем эту модель (model view). То есть в момент разрушения, надо проверять, есть ли мы в "памяти" игрока и если есть, делаем копию.

#3413
12:18, 23 окт. 2020

StepEver
> И это можно как-то распространить на все объекты на карте и на разные виды
> почвы и камня?
Стандартный туман работает буквально для всех типов геометрии.
Ты можешь сделать так же, но вместо расстояния в качестве input брать просто цвет из grayscale текстуры тумана.

> А как мне навмеш растянуть на две карты? :(
Никак... Синхронизировать штуки вручную, видимо.
Я не думаю, что Detour/Recast умеет в фильтрацию препятствий. У него внутри одна навигационная сетка на всех. Если тебе надо, чтобы навигация работала по разному, тебе нужны два навмеша.

#3414
23:12, 23 окт. 2020

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

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Я знаю как улучшить, но пока не до того.

#3415
10:32, 25 окт. 2020

Спасибо!
Ох блин, всё это сложно для меня.
Про туман, я как-то даже не задумывался, как это работает, так что теперь прям откровение :)

#3416
21:06, 4 ноя. 2020

Я не стал с распрыжкой заморачиваться и упростил все чтоб было проще и понятнее в коде хотя общий принцип очень похож на квейковский.

#3417
2:11, 5 ноя. 2020

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#3418
11:24, 5 ноя. 2020

Mesh collider на уровне, или как он там в урхе.

#3419
13:23, 5 ноя. 2020

чип
А ещё оно глючное :-( коллайлеры стабильнее работают когда они из примитивов типа кубиков.

Давай забацаем доброе старое. У меня есть идеи как в урхе сделать более богатый на детали визуал при этом редактируя уровень в таком же примитивном виде.

Страницы: 1225 226 227 228 229 230 Следующая »
Urho3DФорумОФФТОП