[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Panda3D - по русски » Panda3D » Для начинающих » ODE и столкновения. (Маленький вопросец...)
ODE и столкновения.
ASGAlex7571Дата: Пятница, 05.06.2009, 17:22 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте, недавно занялся изучением Панды & C++, вот появился такой вопросец, связанный с ОДЕ.
Вот две строчки кода:
Code
  odeWorld.init_surface_table(2);
   odeWorld.set_surface_entry(0, 0, 150, 0.0, 9.1, 0.0, 0.0, 0.0, 0.002);

Скажите, правильно ли я понимаю, что команда "set_surface_entry" устанаавливает то, как будут взаимодействовать материалы при столкновении? То есть она определяет не свойства материалов в отдельности, а их свойства при столкновении, верно?
И сопутствующий вопрос, если моё предположене было верно. Да, я плохо учил физику в школе, признаюсь сразу... но... откуда можно взять эту информацию? ))))) Как мне узнать, какие параметры устанавливать, к примеру, для воды и пенапласта? Стены и черепной коробки?.. Очень интересно...
 
dpsstudioДата: Пятница, 05.06.2009, 21:44 | Сообщение # 2
Сержант
Группа: Модераторы
Сообщений: 29
Награды: 0
Репутация: 1
Статус: Offline
Хотя никогда не менял свойства материалов в ОДЕ,я согласен с твоим предположением,т.к. ОДЕ для расчёта силы,которая будет отталкивать объект при столкновении,явно использует свойства материалов,значит ты прав.Насчёт сопутствующего вопроса:ИМХО я бы подбирал коэффициенты экспериментально,но вроде в физике для расчёта таких вещей есть коэффициент упругости,который вроде посчитан для отдельных материалов в виде таблиц,думаю его в инете найти можно.
 
ninthДата: Пятница, 05.06.2009, 21:54 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Да, верно. В данном случае это функция пандовской обёртки над ОДЕ, в самом ОДЕ для этого служат каллбэк функции, в которых уже задаются параметры точки контакта. Раз уж пишешь на С, то в принципе можешь заглянуть в исходники обёртки и написать свою функцию вместо этой )
А вообще, параметры подбираются экспериментальным путём, т.к. они условны и не выражаются в общепринятых единицах измерений (соответственно и сводных таблиц на них нет :))
 
ASGAlex7571Дата: Четверг, 11.06.2009, 23:48 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
хмм, забавно, спасибо. В принципе, меня всё устраивает в имеющемся механизме, нет смысла что-то переписывать в исходниках. Панда вообще мощная штука, умеет больше чем я ожидал.
 
ASGAlexДата: Суббота, 13.06.2009, 13:01 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
А не подскажете, как можно узнать список сил, воздействующих на тело? Что-то я не нашел нигде такой функции... или плохо искал?
Просто при изменении направления движения объекта мне надо определить его старое направление и скорректировать.

Ой, точнее даже не так... не список сил, они ведь воздействуют однократно, а скорость и направление движения и вращения... Это не getAngularVel и getLinearVel? Кстати, а в чем ODE измеряет силу? И в чем выдаёт скорость?

Сообщение отредактировал ASGAlex - Суббота, 13.06.2009, 13:47
 
ninthДата: Воскресенье, 14.06.2009, 01:49 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Да getAngularVel и getLinearVel возвращают угловую и линейную скорости соответственно. Возвращаемое значени является трёхкомпонентным вектором.
По поводу единиц измерения см. ответ выше ))
 
ASGAlexДата: Воскресенье, 14.06.2009, 17:39 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Quote
По поводу единиц измерения см. ответ выше ))

Нипонял, то есть как это получается? 48 попугаев? )))) Нынче скорость (velocity) измеряется не в метрах в секунду, а в "трёхкомпонентных векторах"? Забавно :-D А Сила, приложенная к телу, тоже измеряется в попугаях "трёхкомпонентных векторах"?

Ладно, отбросим сарказм =) В самом деле, вот надо мне вычислить, сколько силы надо приложить к телу, чтобы разогнать его до нужной мне скорости... что в таком случае надо делать? Ясно, что сила != скорость, а значит мне надо что-то во что-то переводить...

Добавлено (14.06.2009, 17:39)
---------------------------------------------
как-то не верится, что ODE использует какие-то абстрактные единицы для указания силы и скорости, ведь плотность указывается во вполне реальных единицах: kg/m³. Или я не правильно понял мануал по использованию Панды в связке с ODE?

 
ninthДата: Среда, 17.06.2009, 08:55 | Сообщение # 8
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Ну, ты конечно можешь подогнать это всё под привычные метры в секунду и т.д., но закон относительности никто не отменял ) Всё зависит от общего состояния системы.

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

 
BlackCatДата: Среда, 17.06.2009, 12:27 | Сообщение # 9
Подполковник
Группа: Проверенные
Сообщений: 144
Награды: 0
Репутация: 1
Статус: Offline
Трехкомпонентный вектор - это просто 3 проекции вектора на соответствующие оси координат. Т.е. каждый вектор показывает значение компоненты скорости по каждой из осей. По-моему это самый лучший способ задания скорости и направления по трем осям минимумом данных.

http://alphahole.do.am - версия 0.015 вышла 22.02.10
 
ninthДата: Четверг, 18.06.2009, 08:15 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Ах да, ещё забыл, что бы ты ни указал в скорости движения, это всё меняется одним мановением волшебной палочки... т.е. парой нажатий клавиш - задаётся шаг симуляции и общая скорость изменяется.
 
ASGAlexДата: Вторник, 23.06.2009, 12:43 | Сообщение # 11
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
ninth, ага, то есть получается скорость указывается не в метрах в секунду а в координатах за шаг симуляции?

Сообщение отредактировал ASGAlex - Вторник, 23.06.2009, 13:19
 
ninthДата: Четверг, 25.06.2009, 23:59 | Сообщение # 12
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Ну можно и так сказать
 
BVOGДата: Понедельник, 16.11.2009, 13:46 | Сообщение # 13
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
С ODE - хороший RagDoll получится.

Skype: thebvog
 
Форум Panda3D - по русски » Panda3D » Для начинающих » ODE и столкновения. (Маленький вопросец...)
Страница 1 из 11
Поиск: