Naval Posted January 29, 2008 Posted January 29, 2008 По ходу проработки тематики стало ясно, что без хоть какой-нибудь визуализации сделать ничего толком нельзя. Сделал смешной рендеринг лучей и прямых на форму, кряхтит, но работает -). Научил программку рассчитывать пробивание следующих объектов: 1) Треугольник 2) Прямоугольник-куб 3) Нечто объёмное по 8-ми заданным точкам (растянутый куб) 4) Сборка из треугольников (можно имитировать башню танка) 5) Шар 6) Диск Ежели кто может, помогите плиз со следующей инфой: - как рассчитать пробивание цилиндра (перпендикуляры на его ось от точки входа и выхода). Посчитать, попал ли осколок в цилиндр вообще - могу, но в плоскости осколка цилиндр получается овальным, на чём мысль и останавливается. Может, просто ограничиться прямоугольной проекцией цилиндра в плоскости, перпендикулярной осколку? Такое пригодится для расчёта пробивания свола, БК в танке, подвески самолёта и пр. - как правдоподобно имитировать потерю энергии осколком в воздухе (пока тупо сделал 5% на метр) - как происходит разлёт осколков при реальном взрыве, с точки зрения равномерности покрытия сферы - "кучкуются" ли осколки? - углы разлёта для ГЧ направленного взрыва (пока нашёл цифру 135 градусов) - какой примерно разброс энергии осколков при подрыве (пока оставил +-40%) - Влияет ли скорость ракеты в момент подрыва и скорость ЛА на энергию осколка? Например, если ракета и ЛА летят навстречу, ракета подрывается после пролёта ЛА - насколько меньшую энергию будут иметь осколки, доставшие ЛА, в отличие от взрыва в аналогичной ситуации, но около носовой части ЛА? Поясню, зачем мне всё это. Ежели реализовать такие расчёты для набора объемных примитивов, то ED сможет (без особого напряжения портировав этот код в симулятор) выполнять расчёт повреждений техники в реальном времени, и (теоретически) мы получим (через две недели 8-) ) это в виде готового продукта. Работы тут ещё очень много, но перспектива подбиваемых с тыла танков и реально прикрывающих движки броневых листов очень радует.
FreemanRU Posted January 29, 2008 Posted January 29, 2008 (без особого напряжения портировав этот код в симулятор) Тогда тебе сразу надо соблюдать пару условий: 1. Писать на C++ 2. Проверь своё детище, запустив одновременно хотя-бы 10 взрывов одновременно. Всё сказанное автором - вымесел, и не может быть использовано как доказательство в суде. Мой блог | My blog
Naval Posted January 29, 2008 Posted January 29, 2008 На С++ это переносится легко. Возможно, и сам сделаю. Одновременный просчёт 10 взрывов вряд ли возможен. Даже по тысяче осколков на взрыв - это 10 тысяч за 1/20 секунды (0.05 с при фреймрейте 20 кадров). Даже на двух ядрах это будет долго. Сейчас за это время один с трудом просчитывается. Пока все цифры и скорости примерные, там видно будет. Пока - ставлю задачу обработать ЛА игрока + попадания ракет В-З и снарядов в технику.
Dmut Posted January 30, 2008 Posted January 30, 2008 не хочу огорчать, но большая часть того что ты делаешь у нас есть. проблема "подбиваемых с тыла танков и реально прикрывающих движки броневых листов" в другом - моделлерам нужно переделать все модели на листы с обозначением толщины, и на именованые агрегаты, которые потом ещё и в демедж-модели нужно обработать, что в целом представляет собой титаническую задачу. пока мы от этой проблемы отошли, есть другие, более важные. "There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu [sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]
Naval Posted January 30, 2008 Posted January 30, 2008 Ни секунды не сомневаюсь, что есть - без этого никакой стимулятор не напишешь. Изготовление полноценных моделей повреждений действительно сложный вопрос. Помимо двигателей, которых один-два, есть ещё куча трубопроводов, электропроводки, сигнальных систем, силовых элементов фюзеляжа и т.д. Если всё делать на таком уровне - действительно можно сдохнуть и положить комп при расчётах. С того и начал - взял инфу по бронированию и мерам повышения боевой живучести на Су-25. Пока придерживаюсь мнения, что 20-30 объемных агрегатов плюс 20-50 треугольников на бронирование должно хватить для правдоподобия поведения ЛА. Повреждение проводки можно рандомно отсчитывать как сейчас - рандомом повреждать всё в радиусе взрыва в зависимости от дальности. Мне самому уже просто интересно прикинуть что и как. Да и вдруг пригодится. 2
Святой Posted January 30, 2008 Posted January 30, 2008 Пробивание конструкции пулями и снарядами ещё можно рассчитать честно - просчитывать их путь через боксы агрегатов и броню и определять нанесенный агрегатам ущерб. Но при при моделировании повреждений от подрыва осколочной БЧ можно схитрить. 1. Для бокса данного агрегата от точки разлёта осколков вычислить телесный угол. 2. Получить количество осколков, летящих в направлении целевого бокса = телесный угол целевого бокса / телесный угол разлёта осколков * общее количество осколков. 3. Если бокс закрывается от точки разлёта осклоков листами брони или другими боксами, то определить какую часть телесного угла целевого бокса закрывает каждое препятствие (задача пересечения многоугольников, нахождения площади многоугольника). 4. Так как разные части телесного угла целевого бокса могут быть перекрыты разными комбинациями препятствий, то нужно выявить и запомнить все эти комбинации. Для каждой из таких комбинаций вычислить долю телесного угла целевого бокса, ею закрываемую. 5. Для целевого бокса и всех препятствий (в той части препятствия, что загораживает целевой бокс) нужно определить среднее расстояние от подверженной поражению осколками поверхности до точки разлёта осколков, толщину каждого препятствия (в той части препятствия, что загораживает целевой бокс) и его внутреннюю твердость. 6. Задавшись некоей средней начальной энергией осколков и её дисперсией рассчитать для данного целевого бокса для каждой из комбинаций перекрывающих его препятствий (с учётом их толщин, их внутренней твердости, расстояний до точки разлёта осколков) среднюю энергию и её дисперсию осколков, а также долю достигших (если таковые будут и не все застрянут в препятствиях) целевой бокс осколков. 7. Умножив долю достигших целевого бокса осколков на долю закрываемого данной комбинацией препятствий его телесного угла и на количество осколков, летящих в сторону целевого бокса, получим общее количество достигших его осколков, прошедших через данную комбинацию перпятствий и с учетом средней их энергии и её дисперсии определяем ущерб данному агрегату. 8. Повторяем расчёт для каждой комбинации препятствий. Отдельно также подсчитать тоже самое для осколков достигших целевого бокса напрямую. И так N = количеству повреждаемых агрегатов раз. Упрощение вполне допустимое, а экономия производительности получится весьма значительной. Второй способ - смоделировать полёт небольшого количества n отдельных осколков, каждый из которых будет символизировать полёт всех осколков, приходящихся на телесный угол = телесный угол разлёта всех осколков / n и соответственно обладать их суммарной массой. Насколько я понял вы выбрали второй. Первый более экономный с точки зрения производительности, но намного (!!!) сложней в реализации.
ED Team Yo-Yo Posted January 31, 2008 ED Team Posted January 31, 2008 Только вероятностно. Множить осколки, особенно от больших боеприпасов - занятие бесперспективное. Что будет после залпового сброса бомб?? Ніщо так сильно не ранить мозок, як уламки скла від розбитих рожевих окулярів There is nothing so hurtful for the brain as splinters of broken rose-coloured spectacles. Ничто так сильно не ранит мозг, как осколки стекла от разбитых розовых очков (С) Me
Rediska Posted January 31, 2008 Posted January 31, 2008 Да даже при подрыве ЗУР с готовыми осколочными элементами? С уважением.
Naval Posted January 31, 2008 Posted January 31, 2008 Спасибо за интерес -). То Yo-Yo: Согласен, залповый сброс бомб нельзя просчитывать таким способом, как и близкий разрыв мощной БЧ с большим количеством осколков - с большой вероятностью техника будет повреждена до такой степени, что выяснять степень повреждения отдельных огрегатов смысла уже не будет. Я не ориентируюсь на этот случай - и сейчас в этом аспекте УНВП. Ещё один похожий "тяжёлый" вариант - детонация боекомплекта, топливного бака, разлёт лопаток. Я ориентируюсь на случаи от одного (Вихрь, НУРС, пули) до нескольких сотен осколков (Ракета В-В). Ещё один хреновый аспект - осколки не совсем точки, а имеют вполне определённый диаметр. Плюс надо считать углы в момент подхода осколка - вряд ли под очень остым углом можно нанести значительный ущерб. Хотя даже в случае точного просчёта многих трасс, исключать эффект от ударной волны тоже нельзя, так что по любому некоторой рандом нужен. То Святой: Интересный вариант, мне пока приходило в голову посчитать телесный угол на выпуклый многоугольник для проекции техники в плоскости, перпендикулярной вектору [центра разлёта]-[центр ЛА]. Есть мнение, что если считать Т.У. для каждого бокса, плюс просчёт перекрытий, то пункты 1-4 сожрут времени больше, чем просчёт пары сотен трасс (тут как с распараллеливанием SQL запроса - пока оптимизатор думает над планом исполнения, быстее выбрать в один поток). Пункты 5, 6 и частично 7 у меня уже реализованы в 2Д - к объекту трассы привязывается список пробитых стенок, отсортированный по дальности, со ссылками на родительский объект стенки, из которого берутся данные по необходимой энергии преодоления стенки, потерях на прохождение внутри объекта и т.п., из чего складывается повреждение агрегата. Оптимизаций можно придумать много, но надо сначала провести натурный эксперимент. В качестве базовой оптимизации думаю а) исключать из расчёта осколки с векторами, не направленными к плоскости проекции ЛА. б) расчёт в нескольких потоках Основной ориентир - расчет за 1/20 сек 1000 осколков, 20 боксов, 20-50 листов брони. Даже если это будет 0.3 или 0.5 сек - не повод отчаиваться! Перенос на C++ даст ещё половину скорости, плюс можно использовать быстрые вариации по извлечению корня (корней извлекается много) из NVToolkit и т.д. Как вариант - расчёт можно производить в течение нескольких кадров в отдельном потоке (или нескольких), даже в случае получения расчёта +0.5 сек по времени, пользователь этого не заметит. В первом кадре можно нанести рандомное поражение + звук взрыва + "подкинуть" ЛА, а дальше выдать отказы. Всё покажет натурный эксперимент 8-), пока прогнозы блигоприятные. Еще раз всем спасибо.
Naval Posted February 1, 2008 Posted February 1, 2008 Предварительный оценочный результат - 8 млн расчётов треугольник/луч в сек. на P4-2.8, VB.net. Т.е. обсчёт 1000 осколков, 20 боксов, 20-50 листов брони займет примерно 0.037 с, или 25 раз в секунду. К этому времени нужно прибавить расчёт прохождения кадой трассы с потерями энергии осколка, что увеличит время расчёта. Это пока без оптимизаций на исключение части осколков из расчёта. P.S. На Core2-3.2 получилось 20 млн расчётов в сек., или 0.015 с на "типичный" расчёт.
Naval Posted February 2, 2008 Posted February 2, 2008 Проделав несколько мощных оптимизаций схем расчётов, немедля провёл ряд стресс-тестов, которые показали, что на самом деле можно добиться и фантастического количества коробок, и неплохой производительности. Озадачить Коре2 на секунду смогли только 192 млн. осколков. Ну, естественно, в пересчёте - в реальности было 5 коробок в разных точках (каждая - 12 треугольников), 320 тыс. рандомных осколков и расчёт зациклен на 10 раз.
Scart Posted February 3, 2008 Posted February 3, 2008 а теперь запусти этот расчёт параллельно с ЛО (с какой-нибудь "нагруженной" миссией) и посмотри какой будет ФПС в пик расчёта. расчёт можно ещё больше оптимизировать? [sIGPIC][/sIGPIC] летаю на заказ, дорого... "The FlankerForce"© -=приостановлено=- Лучшее средство завоевания господства в воздухе - танк посередине ВПП © не установлено АХТУНГ! эксперды атакуют! Только отсутствие разведанных запасов нефти в Антарктиде, удерживает пингвинов от демократии.
Naval Posted February 3, 2008 Posted February 3, 2008 Большей скорости выжать, я думаю, вряд ли можно.Я имею в виду разы, а десятки процентов можно выжать в зависимости от ситуации - дальности, ракурса и т.д. "Типичный" расчёт в процессе работы ЛО никакого влияния не оказывает. Пиковый расчёт, которыя я привел, эквивалентен 300-м одновременным взрывам вблизи 50 самолётов. В игре такого с самолётами не бывает. От 300 ракет в воздухе (которые должны выпустить около сотни ЗРК) и 50 близколетящих ЛА симулятор ляжет, не дожидаясь взрывов ГЧ.
ED Team Laivynas Posted February 3, 2008 ED Team Posted February 3, 2008 От 300 ракет в воздухе (которые должны выпустить около сотни ЗРК) и 50 близколетящих ЛА симулятор ляжет, не дожидаясь взрывов ГЧ. Что верно, то верно... :cry: А какие планы касаемо прикладной части проекта? Best Regards, Dmitry. "Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак
Naval Posted February 3, 2008 Posted February 3, 2008 С прикладной частью забавно - касательно Су-25, изучение Бедретдинова показало, что _подробной_ информации по бронированию там нет. Оттуда можно взять титановую ванну, бронирование люков и расположение части элементов СУО и ВМ в носовой части, расположение двигателей и коробок приводов, расположение и бронирование маслобаков, ну и ещё кое-какое бронирование. Там есть толковая изометрическая проекция как бы со снятой обшивкой, и там обозначена куча коробочек агрегатов, но что это - нигде не написано. Непонятно, где гидроаккумуляторы, топливные баки, бустеры, насосы и т.д. В общем, попробую выжать инфу по наиболее важным элементам - бронирование пилота, электроника, двигатели и их бронирование. Как уже писал Святой, это кропотливая работа. Как будет с этим более-меннее ясно, попробую подобрать параметры мощности осколков и пробиваемости элементов. На это уйдёт неделя или две. Потом выложу тестовый вариант проги, чтобы желающие оценили работоспособность схемы и дали статистику по скорости работы расчётов. За визуализацию сразу прошу не пинать - с директыкс-ом я не разбирался, и он отвечает мне взаимностью. Для оценки схемы такой кривизны хватит, а если понадобится, подкованные в 3д-рендериге коллеги сделают её лучше. Ежеди у ЕД налажены отношения с Камовым, то получить инфу по расположению хотя бы части агрегатов и трубопроводов в семействе КАшек будет проще.
ED Team Laivynas Posted February 3, 2008 ED Team Posted February 3, 2008 Ага, понятно... Но я имел ввиду все больше возможность интеграции в симулятор... Хотя этот вопрос уже к другой стороне... Best Regards, Dmitry. "Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак
Geier Posted February 3, 2008 Author Posted February 3, 2008 Уважаемый Naval. Было бы замечательно, если такая штука будет. На данный момент достаточно сделать ее для Су25го, т.к. по совокупности моделируемых процессов он наиболее близок к реалу из всех современных симуляторов. Исключая столь плачевную ситуацию с ДМ. Для Ка50 ДМ можно не особо "париться" т.к. он вообще не несет брони;)
ED Team Laivynas Posted February 3, 2008 ED Team Posted February 3, 2008 Для Ка50 ДМ можно не особо "париться" т.к. он вообще не несет брони;) Ага, как же... А компонуют боевые вертолеты от балды? Просто нечем КБ заниматься как экранировать более важные узлы менее важными, так получается? Танк и самолет собьет если по нему попадет... Это к слову. Ваш ход... Best Regards, Dmitry. "Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак
Geier Posted February 3, 2008 Author Posted February 3, 2008 Ага, как же... А компонуют боевые вертолеты от балды? Просто нечем КБ заниматься как экранировать более важные узлы менее важными, так получается? Танк и самолет собьет если по нему попадет... Это к слову. Ваш ход... Ну ессно кабина бронирована;) И заголовник есть. Нету брони двигателей, коя была на су25 с ПБЖ http://forums.eagle.ru/showpost.php?p=413668&postcount=6 ;)
ED Team Laivynas Posted February 3, 2008 ED Team Posted February 3, 2008 Ну ессно кабина бронирована;) И заголовник есть. Нету брони двигателей, коя была на су25 с ПБЖ http://forums.eagle.ru/showpost.php?p=413668&postcount=6 ;) И что с того? Двигатели экранируют главный редуктор и коробку приводов (вроде так). Или если нет брони, то считать вообще ничего не нужно? Действие любых калибров на фюзюляж принимаем одинаковым и максимально возможным? Танк = боец с АКМ? АКМ = ЗУ-23? Так будет натуральней? PS. Naval вообще расчитывал схемы из потенциально пробиваемых элементов. Best Regards, Dmitry. "Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак
Geier Posted February 3, 2008 Author Posted February 3, 2008 И что с того? Двигатели экранируют главный редуктор и коробку приводов (вроде так). Или если нет брони, то считать вообще ничего не нужно? Действие любых калибров на фюзюляж принимаем одинаковым и максимально возможным? Танк = боец с АКМ? АКМ = ЗУ-23? Так будет натуральней? PS. Naval вообще расчитывал схемы из потенциально пробиваемых элементов. Дык кто спорит. Но броня то была главным фактором, иначе ее бы и не вводили в спешном порядке
ED Team Laivynas Posted February 3, 2008 ED Team Posted February 3, 2008 Дык кто спорит. Но броня то была главным фактором, иначе ее бы и не вводили в спешном порядке А теперь песни о главном - при чем тут вообще броня в общепринятом смысле? Ведется расчет осколочного воздействия на цель и вероятность поражения одних агрегатов, закрытых другими. В случае с "простым" расчетом только брони все остaльное уже несущественно, пробил или не пробил - вот в чем вопрос. Best Regards, Dmitry. "Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак
Albacore Posted February 23, 2008 Posted February 23, 2008 Никоим образом не желая подвергать сомнению доводы уважаемых корифеев о необходимости моделирования разлета осколков в DM для достижения большего реализма, все же рискну заметить, что то, что мы имеем в данный момент в ГС – не самое худшее исполнение результатов попадания в Су-25Т «Стингера». По примеру уважаемого товарища Rediska, тоже записал несколько треков. Подряд! Не побрезгуйте взглянуть. Лично меня откровенно не устроил только 2.5. Выводы делать не буду.попадания.rar
SHMATKO Posted July 20, 2009 Posted July 20, 2009 извиняюсь если было(лень читать все) мне стингер влепился в нос справа,а отвалилась броня слева.мне кажеться,что непорядок [sIGPIC][/sIGPIC] -СКОРОСТЬ -ВЫСОТА два из трех всегда требуются для успешного завершения полета. -МОЗГИ
Recommended Posts