Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 06.09.2011, 16:52   #1
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Вопрос Реализация физики танка с помощью PhysX Wrapper.

Доброго времени суток, Булчане!

Собственно интересует как можно реализовать танк с использованием данного враппера? Данный вопрос выплыл уменя давно, но как то надеялся решить своими силами. Не получилось.

Пробовал делать с использованием pxWheelAddToBody. Результатом остался совсем не доволен даже после долгих экспериментов с трением и скоростью вращения "катков" танка.
Так же, пробовал сделать настоящие гусеницы (да, знаю, что извращенец, но, блин, почему бы и нет ). Работало прекрасно, реалистично, но три танка (у каждого 2 гусеницы по 96 траков) фактически сжирал ресурсы моего ПК (далеко не слабого!!).

Кто нибудь может подкинуть идею как можно сделать реалистично двигающийся танк? Код ненужен, интересуют именно идеи. Хотя если есть пример - тоже против не буду. На огибание мешами гусениц поверхности/предметов побарабану, это самое простое и было сделано уже давно. Интересует именно физическая сторона вопроса.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 06.09.2011, 17:13   #2
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.



6 и 7 жестко связаны с корпусом танка. 1-4 прижимают гусеницу к земле, грубо говоря танк стоит на этих колесиках. Длина гусеницы постояна, соответственно переменная это сумма l1-l4 из величины которой можно получить провисание В. Сила возникающая в пружине F=k*x где к модуль упрогости, а икс смещение.

Танк это машина на множестве колес, отличие только в том что на колеса одета ленточка.
(Offline)
 
Ответить с цитированием
Старый 06.09.2011, 17:25   #3
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Знаю, благо что ходовую танка могу нарисовать с закрытыми глазами. Это уже пытался реализовать. Танк - далеко не машина на колёсах, хоть и имеет таковые.
При движении вперёд/назад всё хорошо при выборе способа с колёсами. Но при развороте гусеничной техники одна гусеница двигается в одну сторону, а другая - в противоположную. Попытка реализовать это на "колёсном" способе привела к грустным результатам вроде раскачивания/прыжков/переворотов танка. Попытка делать разную скорость вращения катков тоже ни к чему хорошему не привела.

УПД под раскачиванием/прыжками танка подразумевается некорректная работа колёс на неровных поверхностях. Целиковая гусенца ведь тянет корпус танка всей своей частью лежащей на поверхности. А колесо всего лишь поворачивается, из за чего получается что при банальном заезде на вершину горки разные колёса пытаются вести себя по разному (одно висит в воздухе, второе пытается тянуть корпус раскачивая его, третье поддаёт амплитуду этим раскачиваниям и т.д.)
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 06.09.2011, 17:32   #4
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Так передвигай танк двумя силами от гусениц. Для разворота тормози одну и вуаля возникает момент сил вокруг зед, который и развернет танк. Из суммы смещений пружин можно получить силу трения создаваемую каждой гусеницей...

Я не знаю зачем тут физику чужую юзать быстрей будет свою написать.

сумма сил для трех осей. делим на массу вектор скорости.
Сумма моментов на все три оси => делим на соответсвующий момент инерции имеем вращение основы танка. Причем легко получится учитывать вращение башни, чтобы если ось башни с центром тяжести танка не совпадает, во время выстрела весь танк подрывало
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (06.09.2011)
Старый 06.09.2011, 17:50   #5
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Ну, нет. Смотри у тебя те валики которые прижимают гусеницу возвращают реакцию опоры. От направления движения зависит куда будет направлена сила трения от каждого валика, которая и двигает танк. Реально попрубуй сделать машину на этак 10-12 колесах, которые не поворачиваются, но все ведущие. Поведение должно быть как у танка.

Вот что я имею в виду :


Так как у танка эти валики находятся на более-менее стабильном расстоянии от центра танка, то для каждого катка можно запомнить вектор перпендикулярный линии связывающей каток и центр танка. Проецировать на него вектор силы трения и умножая на расстояние до центра танка иметь сразу момент вокруг зед. И еще можно вектор сделать длиной 1*R. Тогда проекция сразу будет моментом создаваемым этим валиком.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
4yBa4Ok (06.09.2011), St_AnGer (06.09.2011)
Старый 06.09.2011, 18:20   #6
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Сообщение от dsd Посмотреть сообщение
Реально попрубуй сделать машину на этак 10-12 колесах, которые не поворачиваются, но все ведущие. Поведение должно быть как у танка.
Пробовал, но во враппере получается то, что я написал.

Большое спасибо за схемы, они меня на мысль натолкнули одну. Если всё получится - выложу саму мысль и код.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо St_AnGer за это полезное сообщение:
Colossus (06.09.2011), dsd (06.09.2011), Igor (06.09.2011)
Старый 06.09.2011, 20:48   #7
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

под раскачиванием/прыжками танка подразумевается некорректная работа колёс на неровных поверхностях. Целиковая гусенца ведь тянет корпус танка всей своей частью лежащей на поверхности.
По идее не совсем.
Заднее колесо (шестерня) тянет гусеницу. допустим, с силой F.
натяжение провисающей гусеницы сверху Fx.
тогда самый задний каток забирает столько силы, чтобы не проскальзывать. (F1=k*N1).
между вторым и первым катком сила натяжения гусеницы F12=F+Fx-F1.
Между вторым и третьим F23=F+Fx-F1-F2
И так до тех пор пока не станет сила натяжения между траками F(i,i+1)>=Fx (т.е. гусеница не проскальзывает в направлении движения танка, тянет его вперёд с силой Fт=F)
если траки кончатся раньше - тогда гусеница проскальзывает, тянет танк вперёд с силой Fт=(N1+N2+N3 ...)*k

Плечи всех "рычагов" сил трения вдоль направления гусениц для каждого трака одинаковы, вращательный момент M=Fт*R (R - перпендикуляр от центра танка на гусеницу)

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

UPD: Fx вообще не нужна, она сокращается
UPD2: Что-то мне кажется, что сила трения при движении вдоль направления гусеницы и поперёк должна считаться по разному. -гусеница продавливает землю на некоторую глубину, при проскальзывании вдоль она движется по своей колее, а поперёк- должна из-неё вытащиться и утрамбовать землю в другом месте. (смотрим картинку)
UPD3: передний трак должен немного сопротивляться движению - он "укатывает" землю.
Миниатюры
Нажмите на изображение для увеличения
Название: track.jpg
Просмотров: 998
Размер:	8.5 Кб
ID:	14748  
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (06.09.2011)
Старый 06.09.2011, 22:53   #8
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Пестец, вы там чо гонки на танках или ваще ралли делаете чтоли? Ищо надо влажность и различный грунт учитывать. Ну и аэродинамику надо проработать

Да, глубина продавливания должна считаться правильно, по всем правилам механики грунтов. И если подъехать к краю обрыва, чтобы он осыпался и танк в овраге.


При той массе что у танка сошкрябываемая земля окажет мизерный эффект, см. бульдозер. А на больших скоростях физика движения будет напоминать движение обычной машины по гололеду, имхо.

Плечи для каждого катка разные. Момент же вокруг точки вращения считается, однако.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (06.09.2011)
Старый 06.09.2011, 23:12   #9
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Люди, люди, люди! Вас куда то очень уж далеко понесло я конечно хочу супермегауберреалистичный симулятор танка сделать, но не до такой же степени
мне всего лишь интересно было узнать чьи либо идеи по поводу физики движения танка с использованием враппера, а не идеи, как разработать свой собственный физический движок
Хотя мысли и очень интересные (по крайней мере мне, как человеку плохо разбирающимуся в векторах и физике).
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо St_AnGer за это полезное сообщение:
Colossus (07.09.2011), Igor (07.09.2011)
Старый 07.09.2011, 11:42   #10
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Реализация физики танка с помощью PhysX Wrapper.

Так же, пробовал сделать настоящие гусеницы ... Работало прекрасно, реалистично, но три танка (у каждого 2 гусеницы по 96 траков) фактически сжирал ресурсы моего ПК (далеко не слабого!!).
Было бы неплохо посмотреть демку с честным расчётом физики одного танка. такое нигде и не увидишь)
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW

Последний раз редактировалось Igor, 07.09.2011 в 14:19.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Igor за это полезное сообщение:
Colossus (12.09.2011), tirarex (21.05.2012), tormoz (07.09.2011)
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 05:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com