Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Collision в 3D   Найти похожие ветки 

 
AxxxE   (2003-11-29 19:28) [0]

Вощем, дело поставлено так: есть мапа в виде набора полигонов, всяких - наклонных, горизонтальных и вертикальных. Нуна отслеживать столкновение некоего обжекта со сферическим bounding box"ом (извините за выражение, но, надеюсь, смысл понятен =) ). Легче (и для меня, и для компа =) ) сделать так: каждый раз проверять пересечения вектора скорости обжекта с этими полигонами. Но как это сделать (подкиньте хоть статью)?


 
марсианин   (2003-11-30 13:04) [1]

начинай с простого: научись находить пересечение линии траектории - пусть это будет прямая (ты это понимал под вектором скорости??) с 1 полигоном.. скажем треугольником в 3D.

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

вообще это гемор, конечно.. статьи  посмотри на gamedev.ru - там чего-то было о пересечениях..

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


 
AxxxE   (2003-11-30 16:21) [2]

Если прямая (она же вектор, в данном случае разницы нет) пересекается с полигоном, то сфера перемещается на поверхность полигона, а направление вектора скорости корректируется. Таким образом, сфера "катится" по поверхности. А карта не плоская совершенно, то бишь, неизвестно что считать за низ: шар - главный герой - катается и по "полу", и по "стенам", и по "потолку" одинаково.


 
марсианин   (2003-12-01 23:21) [3]

умеешь находить пересечение линии с треугольником в 3D?


 
AxxxE   (2003-12-03 15:08) [4]

Я этого и прошу =).


 
марсианин   (2003-12-04 20:37) [5]

1. проводишь плоскость ч-з треугольник, получаешь ее уравнение

2. находишь пресечение прямой с этой плоскостью, получаешь точку.

3. проецируем все это хозяйство на плоскость.. т.е переходим к задаче 2D. можно проецировать на плоскость треугольника.. так можно, но это не круто..
я думаю проще проецировать на плоскости XY, YZ or XZ на выбор..
выбор по принципу, так чтоб плоскость треугольника не была перпндикулярна выбранной.. спроецировать скажем на XY - это значит просто выкинуть Z..

4.теперь у нас есть 2Д координаты 3-х точек треугольника на плоскости, и точки пересечения прямой.. ну и проверяешь лежит ли эта точка внутри треугольника..



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.065 c
3-1081422887
GIL
2004-04-08 15:14
2004.04.11
Тип стрима для текстового блоба


3-1082006367
turich
2004-04-15 09:19
2004.04.11
Помогите с DBGrid


14-1079607716
Cobalt
2004-03-18 14:01
2004.04.11
Лечение в негосударственных мед. учреждениях


7-1080034578
Goida
2004-03-23 12:36
2004.04.11
Процессы, запущенные на компьютере....


1-1079717465
Foma
2004-03-19 20:31
2004.04.11
Исходник теста