Вопрос Возможность прострела

sapphire dev
Пользователь
Статус
Оффлайн
Регистрация
15 Мар 2018
Сообщения
187
Реакции[?]
123
Поинты[?]
35K
В общем мне нужно проверить могу ли я попасть через стену по какой-то точке внутри ббокса игрока. В исходнике игры ничего подобного не нашел.

Проблема в том, что обычный трейсрей не подходит по нескольким причинам:
1. Оптимизация: много расчетов, особенно если проходить по всему периметру ббокса с не большим шагом(больше ничего в голову не пришло).
2. Если я направлю луч на середину ббокса и задам макс/минс, то получится, что он вернет тру, только если весь ббокс будет простреливаться через стену, что уже не подходит под задачу.

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

Есть у кого какие-то варианты? Может альтернативы? Буду рад почитать ваши идеи!
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,970
Реакции[?]
958
Поинты[?]
19K
Хотелось бы уточнить, под ббоксом ты имеешь ввиду капсулу( аля хитбокс )?
 
sapphire dev
Пользователь
Статус
Оффлайн
Регистрация
15 Мар 2018
Сообщения
187
Реакции[?]
123
Поинты[?]
35K
По тому, что если я просто получу "точку", как сделано у тебя, это будет достаточно не точно, т.к. он будет сканить лишь эту точку. Мне нужно обойтись без скана конкретной точки. Если угодно моя точка должна быть размером с игрока.
 
Начинающий
Статус
Оффлайн
Регистрация
18 Окт 2023
Сообщения
4
Реакции[?]
0
Поинты[?]
0
Я думаю, что можно оптимизировать обычный трейсрей, если пройтись по периметру ббокса только в одном направлении, например, сверху вниз или слева направо. Это уменьшит количество расчетов вдвое
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
sapphire dev
Пользователь
Статус
Оффлайн
Регистрация
15 Мар 2018
Сообщения
187
Реакции[?]
123
Поинты[?]
35K
Я думаю, что можно оптимизировать обычный трейсрей, если пройтись по периметру ббокса только в одном направлении, например, сверху вниз или слева направо. Это уменьшит количество расчетов вдвое.
Это само собой. Если действительно ничего лучше, чем пройтись по периметру не придумать, то естественно это следует делать пошагово до момента, пока не найдется точка с хитом. И разумеется по вертикали как и по горизонтали будет какой-то шаг => одновременно будет много вертикальных трейсреев на одной вертикальной линии, что уже съест очень много фпс, а так же займет очень много времени на рассчеты, а если представить, что каждый рекорд уйдет в пустую и эти мощности просто "выстрелят" в холостую? Это же кошмар!!! И это только на 1 вертикальную линию, а их будет так же не мало на 1 ббокс. А если мне нужно это сделать на каждый рекорд каждого видимого игрока в текущем тики? Влзьмем по максам - 32 * 32 * 20 * 20(при условии, что 32 рекорда, 32 игрока и 20 лучше по вертикале и горизонтали). Нужно думать что-то еще....
 
Последнее редактирование:
Сверху Снизу