• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Newton Physics: различные проблемы и их решения

Автор barmadjar, 23 июля 2009, 13:25:13

« назад - далее »

Ruslan

Можно, например с помощью джоинта Newton Hinge

Droni

У меня возник вопрос насчет джоинта "Ball and Socket Joint". Я привязал к камере ньютоновскую сферу с нулевой массой и к ней через Ball and Socket Joint еще одну большую ньютон сферу. И вот когда сцену запускаешь - всё нормально, но если секунд 5-10 ничего не делать, то большая сфера остается на месте, а камера получается отдельно!

S -старт
R -сброс

Ruslan

#77
Пример не смотрел, но..
у тебя камера как я понимаю и так прилинкована к ньютоновскому телу (сфера). Почему бы не подвязать объект через джоинт к этой сфере?
Если у объекта масса 0(NULL), то можно сказать, что объект не активен.
Почему бы не линковать через джоинт Newton Hinge с Pin Direction (1,1,1) ?

ред.
уууууууууууу волксрачь...

Jon

Как сделать, что бы при нажатии R newton объекты созданные с помощью ForLoop сбрасывались именно в координатах указанных в массиве, а не в координатах последнего объекта, как у меня?

Находил на форуме пример с падающими и разбивающимися ящиками, сделано именно так как надо, но пример .exe

ForLoop создаю с помощью циклической прогонки канала newton.

Ruslan


Jon

#80
Спасибо за пример, но я не разобрался!
Можно на словах объяснить, как реализован сброс объектов на нужные координаты?
В примере четко видна запись начальных координат через set matrix, потом это складывается с нулевыми координатами(это для чего?), Потом всё забивается в массив для newton .

Ещё пара вопросов: я слышал что для newton в цикле координаты задаются только через motion (матрицу), а через вектор не работает - это так?

И почему в примере блок массива цепляется к Newton Body Matrix , а у меня нет,и вобще какую роль он играет ? У меня его нет !

Ruslan

ЦитироватьВ примере четко видна запись начальных координат через set matrix, потом это складывается с нулевыми координатами(это для чего?)
Если в одну из "нулевых" матриц записать значения, то стало бы видно, что отдельный "обломок" поменял позицию\ориентацию в данном случае, можно и не умножать на нулевую матрицу! (сделал для того, что бы при необходимости можно было менять изначально положение некоторых кусков ящика.

Цитироватья слышал что для newton в цикле координаты задаются только через motion (матрицу), а через вектор не работает - это так?
Да, для инициализации Newton объекта необходима именно матрица.

ЦитироватьИ почему в примере блок массива цепляется к Newton Body Matrix , а у меня нет,и вобще какую роль он играет ? У меня его нет !
потомуся  ;D
на выходе канала Newton Body имеем матрицу, которую необходимо линковать к чилдрену Matrix канала 3dObject но у нас Newton Body находится в массиве, причем хитро  ;)
поэтому такой номер не пройдет без Newton Body Matrix

Очистка массива нужна для того, что бы при нажатии клавиши "R" (в данном случая reset для физики) Quest3d не "коматозило".

Jon

И всё же, почему мой Array Channel не цепляется к Newton Body Matrix? Где загвостка? У моего канала Basetype: Matrix
Как его поменять?


Jon

Хитрая мелочь, спасибо!
Но объекты все равно не хотят сбрасываться в нужных координатах, буду дальше копать!
У меня координаты изначально записаны в массив, но сброс только в координатах последнего объекта! Если переключателем отключить и подключить этот массив снова, то объекты появляются сначала в нулевых ,а потом в нужных местах, после рестарта newton, все объекты опять в точке последнего!
Можно было бы пользоваться и с переключателем, но когда много объектов newton сбрасываются но 0,0,0 квест виснет!

Ruslan

#85
Не мучайся, просто сделай как у меня в примере.
Матрицы для инициализации вынеси в отдельный массив, что бы можно было не зависимо очищять массив с ньютоновскими телами.
Если нужен restart то очищяешь массив с ньютоновскими телами и создаешь новый, при этом матрицы для инициализации берешь из отдельного массива.

К сожалению Newton в Quest3d реализован очень криво, да и далеко не первой свежести (Newton 1.53 (old version))
текущая версия Newton на офф сайте (Newton 2 (Latest Version))

Shef_gt

Как сделать, чтобы ньютоновское тело можно было отключить, т.е. разрушить, чтобы вот оно есть, и , бах - и его нету??? Я пробовал сделать через Newton Body Switch, но, чесно говоря, даже не понял как он работает. Вроде всё подключаешь, а эфекта никакого.

Ruslan


Jon


Jon

#89
При нажатии и отпускании клавиши (T),коллизия отключается и вкл. все объекты в цикле сбрасываются на заданные в массиве координаты. Всё через одно место, но работает!
Делал без очистки массива и без перезаписи координат, если необходимо сбросить всю физику, зажимаю (Т) и жму (R)- что бы не завис квест.
Какие могут быть последствия такой замены коллизии?