forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Box-to-Box collision (http://forum.boolean.name/showthread.php?t=1761)

Ilyich 22.10.2006 12:12

Box-to-Box collision
 
Приветствую форумчан!
В блице, как известно, можно выбирать из трех вариантов коллизий (сфера к боксу, сфере и полигону). Все вроде бы здорово, но возникает вот такой вопрос : Если, допустим, коллидятся два бокса, или бокс с плахой (plane), мне что - повешаться с горя? Ставлю, допустим, тип коллизии №2 - боксы вроде коллидятся, но между ними остается пространство (сферическое). Если поставить EnityRadius поменьше, то на углах боксы перекрываются. Ставлю другие коллизии - вообще проходят друг через друга! Вот такая штука. Уже втрой день сижу, разбираюсь, если не разберусь - совершу суицид, точно. :) Если можно, дайте совет, не относящийся к ODE (не хочетя его использовать). С меня, как водится, свечка за здравие ;))

Diplomat 22.10.2006 13:40

Re: Box-to-Box collision
 
Решение зависит от контекста.
А вообще - EntityPick тебе поможет. Он пришел в мир, чтоб принести человечеству спасение...

tormoz 22.10.2006 13:56

Re: Box-to-Box collision
 
Заказывай венки...

jimon 22.10.2006 14:41

Re: Box-to-Box collision
 
тебе надо реальная физика ?
или коллизии ? :)

SubZer0 22.10.2006 16:20

Re: Box-to-Box collision
 
К сожалению такой коллизии нет, ибо она кодится двумя строчками (если разница позиций по модулю меньше чем опр величина, то передвинуть объект назад)

а вообще в длице целый геморой с коллизиями... если оба меша будут двигаться то коллизия вообще глючить будет...

таким образом решения тут два, или привзывать ОДЕ или смотреть сюда

tormoz 22.10.2006 23:10

Re: Box-to-Box collision
 
Цитата:

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

HolyDel 23.10.2006 01:28

Re: Box-to-Box collision
 
Цитата:

Сообщение от SubZer0
К сожалению такой коллизии нет, ибо она кодится двумя строчками (если разница позиций по модулю меньше чем опр величина, то передвинуть объект назад)

IMHO, тока если объекты не повернуты. Ну в смысле RotateEntity ent,0,0,0.
Можно припарентить к каждому объекту по кубику, отскалировать как надо и проверять MeshIntersect-ом. НО так мы узнаем пересекаются объекты иль нет, а куда двигать и насколько:dontknow: .

SubZer0 23.10.2006 02:28

Re: Box-to-Box collision
 
Цитата:

Сообщение от HolyDel
НО так мы узнаем пересекаются объекты иль нет, а куда двигать и насколько:dontknow: .

когда кодится большой проект то у каждого объекта обычно есть свои параметры, а именно (например): позиция, углы, скорость...

и точно также откуда мы знаем куда объект двигать чтоб он передвинулся вперед двигаем его в обратном направлении (типа на отрицательную скорость, или угол развернуть на 180)

у меня обычно процедура MOVE за такие дела отвечает, и в нее (наряду с остальными) передается параметр в виде цифры... если 1, то двигать вперед, а если столкновение то вызываем эту же процедуру только с коэффициентом -1 и все ок... ;)


Цитата:

Сообщение от HolyDel
IMHO, тока если объекты не повернуты. Ну в смысле RotateEntity ent,0,0,0.
Можно припарентить к каждому объекту по кубику, отскалировать как надо и проверять MeshIntersect-ом.

а можно сделать привязку наоборот, к кубикам привязать объекты, тогда и крутить можно будет :@

jimon 23.10.2006 09:06

Re: Box-to-Box collision
 
HolyDel
сначала куда двигать
потом трение
...
потом что ? физический двиг решил зделать ? :)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot