AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > Не самолетом единым ...

Важная информация

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2016, 15:29   #1
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

Точных подробностей не знаю, но это вроде "дерево", в "ветках" которого прописаны "соседи". Типа, есть полигон и находятся полигоны с которыми у него есть общая грань. Они для него соседями и являются. Это, типа, для быстрого нахождения точки столкновения/пересечения объектов.

Выглядит очень похоже на это, но это моё предположение, не разбирался с этим.
NB79 вне форума   Ответить с цитированием
Старый 20.04.2016, 17:19   #2
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Спасибо. В collisions в общем со всем разобрался, кроме этих вот
Цитата:
[CoNeiCnt_b0p0] [CoNei_b0p0]
значений. Откуда они берутся, что представляют, что их синтезирует, можно ли прописать их вручную? В MshConverter их тоже не видно...
Порылся в интернете, такой вопрос уже задавался http://forum.aviaskins.com/showthread.php?p=13731 ответа так и не нашлось. Правда обнаружил некоторую информацию http://dispersalfield.ru/main/index.php?topic=649.0. Видимо это все таки collision, но чего, за что отвечает? Так ни не узнал

Последний раз редактировалось tvister; 20.04.2016 в 20:19.
tvister вне форума   Ответить с цитированием
Старый 20.04.2016, 20:56   #3
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

Цитата:
Сообщение от tvister Посмотреть сообщение
Откуда они берутся, что представляют, что их синтезирует, можно ли прописать их вручную?
Если моё предположение верно, то так:

- Откуда они берутся?
- Дерево строится из общей модели коллизий.

- Что представляют?

a) [CoNeiCnt_bXpY] - секция, в которой описано кол-во соседних элементов для каждой ноды.
б) [CoNei_bXpY] - секция, в которой записаны индексы полигонов для всей группы нод.

Имя секции расшифровывается вероятно так:
Co - Collision
Nei - Neighbor
bX - block X
pY - part Y

Т.е., коллизионная модель представляет из себя набор блоков состоящих из одной/нескольких частей. Для каждого такого набора находятся группы соседних полигонов и на основе этих данных заполняются два массива, первый содержит кол-во элементов в группах для блока и части, второй последовательный список индексов полигонов для этого же блока м части. Понимаю, что немного мутное объяснение, но мне сложно проще объяснить.

- Что их синтезирует?
- Нужна программа, которая на основе коллизионной модели построит это дерево.

- Можно ли руками заполнить?
- Можно. Но кропотливо, долго и неудобно, легко допустить ошибки. Нужно брать каждый блок, для каждой его части выписывать индексы полигонов, объединять в группы соседние полигоны и потом соответствующие списки заполнять.
NB79 вне форума   Ответить с цитированием
Старый 20.04.2016, 22:01   #4
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Возможно я не правильно вас понял, но... X и Y-это координаты полигонов, или как? В обоих значениях b всегда равно=0 а, значение p это порядковый номер collisions. Для примера, неповрежденная носовая часть американского танко-десантного судна LST1, Hull1 содержит 4 collisions и p-номер определяет порядок прописывания collisions в .msh файле, p0-первый, p1-второй и т.д. Посмотрите, сollisions пишется в самом конце (внизу) файла. Программой которая "встраивает" collisions в Ил скорее всего является экспортер из Blender-a, MAX-а. Экспортер из блендера исправно выдает координаты любого меш-объекта и collisions в том числе. CoVer0_- вершины collisions а,CoFac_-полигоны. CoNeiCnt_,CoNei_- если правильно вас понял описывают древовидную файловую структуру collisions как в MshConverter. Тогда почему я их (CoNeiCnt_,CoNei_) не вижу в том же конверторе и почему подобных "невидимых" структур нет для других частей модели? Такие вот рассуждения. С уважением...
Вложения
Тип файла: rar Hull1.rar (16.5 Кб, 328 просмотров)
tvister вне форума   Ответить с цитированием
Старый 20.04.2016, 23:16   #5
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

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

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

Я не подскажу сейчас, как это дерево в игре строится точно, не вникал пока. И тем более не знаю, как это осуществляется при экспорте модели из Макса/Блендера, с ними у меня вообще дружбы ноль. Я, скорее, чисто теоретически пытаюсь что-то подсказать, что может быть поможет в поисках нужного решения. Вообще мне кажется, что это как-то должно рассчитываться при экспорте модели из Макса/Блендера. Это самый простой и правильный путь, все данные о модели в них доступны и не нужно что-то дополнительно делать/запускать. Нужно с экспортёрами разбираться и смотреть как в них это делается, как мне кажется.
NB79 вне форума   Ответить с цитированием
Старый 20.04.2016, 23:42   #6
yt2
Местный
 
Регистрация: 18.01.2012
Сообщений: 814
По умолчанию

Вы об чём ребята? Какие блоки вручную... Коллизии пишутся автоматом при экспорте. Их имена и привязку к мешам перед экспортом прописывают в конфиг экспорта, а уже плагин пишет имена в хиер.хим и в мешах создаёт упомянутые блоки, автоматом.
yt2 вне форума   Ответить с цитированием
Старый 21.04.2016, 00:34   #7
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Всем откликнувшимся, огромнейшее спасибо.
Цитата:
Коллизии пишутся автоматом при экспорте.
Так я и думал, видимо проблема в экспортере.
tvister вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:30. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru