Quest3D - Русскоязычное сообщество

Quest3D => Физика => Тема начата: xytop от 30 Июля 2009, 09:23:54



Название: положение обьекта
Отправлено: xytop от 30 Июля 2009, 09:23:54
как сделать так что бы обьект B всегда смотрел в низ.
через Newton? или можно как то по-другому.


Название: Re: положение обьекта
Отправлено: DimiS от 30 Июля 2009, 12:15:17
если тебе нужно применение физики то можно и через ньютон...
а если "как-то по другому" то сделай ему такую анимацию чтоб он всегда смотрел вниз  ;D

Используя Newton-физику можно применять joint-ы, они бывают разные. Из рисунка так и не понял, нужен ли тебе Newton Up Vector (задаёт вектор по которому объект всегда сохраняет своё положение), или Newton Hinge (создаёт соединение между двумя объектами -- ось вращения)


Название: Re: положение обьекта
Отправлено: xytop от 30 Июля 2009, 15:13:41
да нужна ось вращения. Newton Hinge. обьект А вращается во круг центра (там где стрелки)в лево и право. и вверх и в низ. а как он подконектится т.е. joint конектятся к pivot или к любому участку обьекта? вот это я совсем не в курсе


Название: Re: положение обьекта
Отправлено: DimiS от 30 Июля 2009, 17:23:09
[Quest3D folder]\Examples\NfQ Demos\08 - Hinge Joint.cgr
дерзай


Название: Re: положение обьекта
Отправлено: xytop от 31 Июля 2009, 09:11:43
с joint стало понятней. ещё вопрос.
вот на это примере \Quest3D 4.2.3\Examples\NfQ Demos\09 - Ball and Socket Joint
начинаю изменять координаты обьекта "First Body" напр по Х (OLD+A-B). через "юзер инпут" и обьект начинает колбасить очень быстро и в разные стороны... это глюк только у меня. как это исправить?


Название: Re: положение обьекта
Отправлено: IDEV от 31 Июля 2009, 11:50:02
Сначала не запускай физику и останови её через операторы pause или stop. измени каоординаты как надо тебе. потом открой свойства join затем Destroy и Create. Петли пересоздадутся по новым координатам. Затем можно физику запускать


Название: Re: положение обьекта
Отправлено: xytop от 03 Августа 2009, 09:49:07
а можно ли изменять длинну обьекта в реальном времени. т.е. координаты петель остаются на месте изменяется лишь длинна обьекта.
после публикации такого расколбаса не будет?


Название: Re: положение обьекта
Отправлено: IDEV от 03 Августа 2009, 16:47:40
DimiS ты где?


Название: Re: положение обьекта
Отправлено: DimiS от 09 Августа 2009, 20:50:19
в отпуске я был))

Вобще у Newton Body Command есть команда Set Collision Geometry, можно попытаться заменить геометрию коллизии если надо. Но я ещё ни разу не пробовал её применять сам и не знаю как оно будет себя вести. Даже если физика будет отрабатывать вменяемо, то может оказаться что это очень тормозная операция и часто её использовать не получится.
Но в большинстве случаев тебе и не понадобится действительно менять геометрию физического объекта. Если то тело не будет ни чего больше касаться, кроме того с кем у него joint, то вполне достаточно изменять ему только визуальные размеры. Подключать Newton Body к 3D Object не напрямую а через матричный оператор изменения размера.


Название: Re: положение обьекта
Отправлено: xytop от 10 Августа 2009, 12:44:54
DimiS
- если тебе нужно применение физики то можно и через ньютон...
а если "как-то по другому" то сделай ему такую анимацию чтоб он всегда смотрел вниз - не анимацией - это точно
нужно что бы он перемещался невращаясь  ??? чё написал  ;D
т.е. как бы заблокировать одну ось


Название: Re: положение обьекта
Отправлено: DimiS от 10 Августа 2009, 21:49:11
ппц, ты так объясняеш что нифига не понятно. Мне кажется если тебе удастся чётко сформулировать задачу, то ответ к тебе сам прийдёт  ;D так бывает


Название: Re: положение обьекта
Отправлено: xytop от 10 Августа 2009, 22:16:52
DimiS оптимистично  :)
если смотреть на рис. пивоты у них в одной точке, при изменении их угла обьект В будет всегда перпендикулярно обьекту А, нужно чтобы он (обьект А) всегда смотрел в низ. как это возможно сделать без использования физики?


Название: Re: положение обьекта
Отправлено: DimiS от 10 Августа 2009, 23:00:19
на рисунке не обозначены их пивоты. Под пивотом ты наверно подразумеваеш точку вокруг которой объект должен вращятся? И ты хочеш сказать что эта точка у них совмещена, так? Изменении чьего угла? у них всегда должен быть одинаковый угол поворота? они должны вращаться в одной плоскости, двух трёх? "будет всегда перпендикулярно" это имеется ввиду доложен быть, или не должен но у тебя пока получается только так? Смотрел вниз? какой стороной смотрел?
Да и в результате чего должно происходить изменение угла поворота? вот определяющий вопрос для необходимости использования физики. И должно ли изменение поворота этих объектов как то влиять на другие объекты?

Такое количество вопросов которые нужно уточнять прежде чем получится вникнуть в твою проблему реально отбивает любое желание в неё вникать.


Название: Re: положение обьекта
Отправлено: jeha от 16 Августа 2009, 14:50:47
У меня вопрос касательно положения объекта, но без физики).
В общем вопрос такой: можно ли какам либо способом определить находится ли объект (в моем случае камера) внутри другого объекта, скажем внутри бокса (для начала). Т.е. нужно знать именно внутри или нет, а не рядом с центром объекта.


Название: Re: положение обьекта
Отправлено: DimiS от 16 Августа 2009, 16:53:46
ну вообще можешь покопаться в направлении использования CollisionBoxCheck и CollisionSphereCheck но я тебе точно не опишу как их нужно использовать, да и они проверяют не совсем нахождение объекта внутри бокса :)
А для камеры я бы сделал ручками функцию которая бы проверяла нахождение точки внутри бокса, там не сильно сложная математика. Для сферы ещё проще.


Название: Re: положение обьекта
Отправлено: jeha от 17 Августа 2009, 11:14:32
Я немного другое имел ввиду.
Вот скажем есть сцена:
1) render mesh - вот эти объекты только рисуються
2) collision mesh - вот с этими проверяется столкновение камеры
3) вот сдесь я бы хотел разместить  вот эти условия нахождения объекта (его центра) внутри другого объекта без колизий и без физики.
Т.е. вот скажем есть модель комнаты, есть ее модель столкновений и есть модель контура комнаты ( ее границ, объема ну или как-нибудь по другому назвать) и вот с последней рассчитывать условие что то типа такого:
if camera in room(объем): ;D
В сторону чего вообще смотреть: в сторону векторов или матриц? ???



Название: Re: положение обьекта
Отправлено: Ruslan от 17 Августа 2009, 12:41:49
jeha
Скажу сразу, я например не знаю, как так сделать, что бы сработало условие: if camera in room(объем)
Но мне любопытно, где такое может понадобится (без физики)?

Поставь "сигнализацию" при прохождении которой, срабатывало бы это условие (меш, внутри меша)  ;)


Название: Re: положение обьекта
Отправлено: DimiS от 17 Августа 2009, 13:19:43
Ну а почему другое? Комната -- это твой бокс, к камере лепиш сферу в качестве колиззион обжекта, и проверяешь с помощью CollisionBoxCheck. Чем меньше размер сферы, тем аккуратнее будет срабатывать проверка. Если комната неправильной формы, или надо несколько соседних комнат тоже проверять, то надо будет сделать несколько таких проверок с разными боксами.
Единственный ньюанс -- бокс надо будет настраивать вручную, автоматически из модели комнаты его никак не получить.


Название: Re: положение обьекта
Отправлено: jeha от 17 Августа 2009, 16:42:50
DimiS ты поткинул отличную идею, спасибо. :)
Ведь мне реально нужно было лишь срабатывание на входе и срабатывание на выходе.
!!
Так даже проще чем я рассчитывал делать)
Ведь реально: зашел - сработало, вышел - сработало и не надо знать внутри ты или не внутри.
Спасибо БОЛЬШОЕ.


Название: Re: положение обьекта
Отправлено: DimiS от 17 Августа 2009, 20:59:30
эмммм, я в принципе конечно не пробовал его ни разу юзать, но мне почему то казалось что если коллижен обжект внутри бокса, то этот ченел будет возвращать 1, а не только при пересечении границы