Парни, это конечно не в тему ваще =)) но здесь 3д гейм дивел

  • Автор темы Автор темы buncker
  • Дата начала Дата начала

buncker

=)
26 Ноя 2002
10.387
4.784
113
46
МО
вапрос однако.
интересует следующее, в общих словах, т.е сам подход к решению.
имеем допустим игру - шутер от первого лица.
такая сцена.
три колонны допустим.
и монстры.
игрок делает выстрел.
как отрабатывается попадание в цель? (как исходные данные - координаты экранные точки попадания )
самый интерес вызывает следующая ситуация.
монстр на половину закрыт от игрока колонной.
выстрел попадает или в колоннуили в видимую часть монстра.
как отрабатывается случай когда выстре попадает в ту чатсь монстра которая прикрыта колонной. т.е при обработке полигонов монстра вычисления показывают что мы попали в монстра, но этот полигон (в который попали) - на самом деле скрыт колонной. (т.е попадания нет)
если это важно - используется opengl.

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

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

то-же самое - на земле стоит дом
враг высунул из-за дома ногу
выстрел
попадаем в угол дома, но если продолжить траекторию выстреал (проверить луч на пересечение) - то он поапдёт во врага.

бить всё это дело на деревья - кондратий хватит...
а ведь меча вариор к примеру как-то был написан.
кстати может его исходники уже открыли... гм..
 

Сейчас просматривают