Показать сообщение отдельно
Старый 20.04.2016, 23:16   #684
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Возможно я не правильно вас понял, но... X и Y-это координаты полигонов, или как?
Нет, X - это номер блока, а Y - номер части. Блок может состоять из нескольких частей.

Я не вникал в устройство коллизионной модели Ила, тут пишу чисто логические рассуждения об устройстве этих секций. Смотрите, для чего нужно такое сложное устройство коллизионной модели? Ответ очень простой: - Для упрощения задачи нахождения точки пересечения луча и плоскости/двух плоскостей. Ведь у нас на сцене сотни тысяч полигонов и если мы, например, стреляем куда-то, то просто перебирать все полигоны и проверять пересекает ли луч (траектория выстрела) какой-то из них, это нам никакой производительности не хватит, мы будем болтаться в этом цикле не вылезая. Для упрощения решения этой задачи обычно строят древовидную структуру, которая позволяет на много порядков снизить кол-во расчётов и проверок. Мы просто находим в спец. подготовленном дереве часть модели в пределах заданных координат и там очень быстро в соответствующей ветке получаем нужный нам полигон. По имени блока мы можем определить ассоциированный с ним меш, а по номеру части узнать, например, конкретную деталь, с которой луч пересёкся. Типа, попали в пулемёт, в патронный ящик -> рисуем бум от детонации БК.

Я не подскажу сейчас, как это дерево в игре строится точно, не вникал пока. И тем более не знаю, как это осуществляется при экспорте модели из Макса/Блендера, с ними у меня вообще дружбы ноль. Я, скорее, чисто теоретически пытаюсь что-то подсказать, что может быть поможет в поисках нужного решения. Вообще мне кажется, что это как-то должно рассчитываться при экспорте модели из Макса/Блендера. Это самый простой и правильный путь, все данные о модели в них доступны и не нужно что-то дополнительно делать/запускать. Нужно с экспортёрами разбираться и смотреть как в них это делается, как мне кажется.
NB79 вне форума   Ответить с цитированием