Полезное

Мы Вконтакте

Discord канал

#
12
След.
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
сто акторов движется не всех же считать.

а коллизия ты думаешь проще считается? минимум - также, максимум - комплексные коллизи на порядки сложнее по вычислительной сложности.
поэтому нужен минимум... а он обеспечивается фильтрами ранними
1-ый фильтр класс обьекта
2-ой дистанция
3-ий - угол
4-ый - минимальная дистанция
даже эту фильтрацию можно оптимизировать
в полном цикле ищем минимальную дистанцию - можно найти при вычислении второго фильтра при выполнении условия 3-его)...
кароче...
с коллизиями кажется проще только потому что вся логика у них уже существует. ивенты диспатчера и тд.
единственный более менее приемлемый вариант коллизии для такой задачи - сфера. Но чтоб с увереностью ее использовать нужно провести ревизию ее кода. Чтоб она лишнего ничего не считала.
но есть в двигле ивенты уже готовые и для расчета пересечения со сфрой и без коллизий.
_________________
we need to go deeper
Последний раз редактировалось Snake 04 окт 2017, 08:12, всего редактировалось 1 раз.
Аватара пользователя
Пользователь
Сообщения: 4069
Snake писал(а):
Цитата:
сто акторов движется не всех же считать.

а коллизия ты думаешь проще считается? минимум - также, максимум - комплексные коллизи на порядки сложнее по вычислительной сложности.
поэтому нужен минимум...

у меня если честно и дома коллизии, и деревья коллизии, и машины коллизии, и у ботов "атак радиус" - коллизия, и физичиский ассет коллизии....

p.s. + коллизии выключаются когда они не надо, например турель взяла цель, и ведет огонь, включит коллизию после поражения цели.
Последний раз редактировалось Prytaleks 04 окт 2017, 08:14, всего редактировалось 1 раз.
Аватара пользователя
Пользователь
Сообщения: 2319
коллизия должна быть необходимосью! когда без нее никак.
так что
Цитата:
дома коллизии, и деревья коллизии, и машины коллизии

оправланно,
а вот :
Цитата:
у ботов "атак радиус" - коллизия,

не факт что оправданно
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
Snake писал(а):
не факт что оправданно

да, это действительно нуждается в тесте. Может действительно лучше, что бы все акторы общались между собой всегда.

p.s. у зомби маленькая коллизия, он прыгает, сразу, или цель меняет. Я не уверен что без коллизий получится качественно. В любом случае, на тике проверок нехило прибавится.
Аватара пользователя
Пользователь
Сообщения: 2319
спорный конечно момент... при малой дистанции атаки и настроенным каналом столкновений вроде бы коллизия неплохое решение.
но вот с увеличением дистанции... даже незнаю...
но по выще описанной фильтрации у меня у ботов "чувства" сделанны... (вместо перцептионАИ системы,тормознутая она какая-то)и это работает достаточно быстро,
если правильно настроенны фильтры, то количество обьектов в начальном массиве = максимальному количеству целей
ну пускай их 200... каждый может стрелять в каждого
цикл (199) с теоремой пифагора внутри - нагрузка на каждого бота.
199^2 = 39601 вычислений.
после второго фильтра будет значительно меньше.


А вот насколько удачно работают фильтры у коллизийи без ривизии кода непонятно. Кстати надо будет посмотреть.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 90
Snake писал(а):
...
нужно 3 воодных вектора
положение тюрели V1
положение цели V2
и напрвление тюрели нормализованный dir
if ( acos(dotproduct(normalize(v2-v1),dir)) > maxAngle /*максимальный угол обнаружения*/)
{}


Вот кстати годная тема, попробую ее заюзать.
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
39601 вычислений.

ах забыл добавить
не обязательно их в каждом тике считать
с итервалом, и рассинхронить цикл по у разных целей, если нужно можно даже на несколько тиков цикл размазать.
иполучается при 30 фпс за тик нужно посчитать 1320 итераций, при 200-ах целях каждая в каждую может стрелять, что уже не так страшно совсем)
при чем чем больше фпс тем меньше за тик нужно считать.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 90
Snake писал(а):
...
нужно 3 воодных вектора
положение тюрели V1
положение цели V2
и напрвление тюрели нормализованный dir
if ( acos(dotproduct(normalize(v2-v1),dir)) > maxAngle /*максимальный угол обнаружения*/)
{}


Что то я пытался реализовать такое блупринтами и не вышло, можешь кинуть плиз пример?)


Сейчас этот форум просматривают: Bing [Bot] и гости: 9

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница