Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

Проверка столкновений   Найти похожие ветки 

 
NOX   (2004-08-18 13:44) [0]

Привет. Подскажите кто знает как организовать проверку столкновений в полном 3D. Или киньте ссылку на статью.
Заранее спасибо.


 
Fredy314 ©   (2004-08-18 14:39) [1]


> в полном 3D

а ето что? в чем ты 3D рисуеш про то и ищи (DirectX там или OpenGL?)


 
Darthman ©   (2004-08-18 15:28) [2]

Fredy314:
ну ты lol. От графического АПИ не зависит как проверку проводить

NOX:
Сфера на сферу проверить вообще тривиально.


 
Fredy314 ©   (2004-08-18 16:14) [3]

Проверка может зависить от структуры хранимых данных по ним можно оптимизировать или запутать чтоб самому не разобратся.

А вот оскорблений не надо.


 
NOX   (2004-08-18 16:31) [4]

Со сферами-то ладно, если есть их координаты то это просто, а вот если объект сложный, например модель автомобиля, который из 5000 полигонов состоит? Не буду же я на столкновение с каждым треугольником проверяться? Должны же быть какие-то алгоритмы или приёмы. Как другие это делают???


 
Darthman ©   (2004-08-18 16:38) [5]

Оскорблений не было, но проверка столкновений к АПИ отношения не имеет. Структура и там и там может быть абсолютно одинаковая.


 
miek ©   (2004-08-18 16:57) [6]

>не буду же я на столкновение с каждым треугольником проверяться

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


 
Колбасьев ©   (2004-08-18 17:19) [7]


> Fredy314:
> ну ты lol.


LOL - это не обзывание , а сокращение от "Очень Смешно" на английском ;-)


 
Darthman ©   (2004-08-18 17:25) [8]

Laugh out loud - очень смешно (дословно громко).

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


 
Zer0[np]   (2004-08-18 19:03) [9]

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

пример второго - BSP (Binary Space Partition) или QuadTree. (гугли их)

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


 
NOX   (2004-08-18 20:51) [10]

Идея прямоугольниками хорошая. Если не трудно подскажите как проверить столкновение прямоуголников друг с другом и с точкой. Или может статьи какие есть?


 
марсианин ©   (2004-08-18 23:59) [11]

2NOX
все зависит от того, что именно ты пишешь..
сферы проверить очень просто.. прямоугольники - значит. сложнее..
ИМХО прямоугольники имеет смысл использовать тогда, когда ты хочешь модеровать физику чего-то некруглого на чем-то плоском.

и проверка столконвений тогда лишь вершина айсберга..

если разбираешься в С++, посмотри исходники движка OGRE на www.ogre3d.org
там точно есть демка, где пирамидка из кубиков очень реалистично рассыпается по полу..
может и сам движок приглянется..



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

Форум: "Игры";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.055 c
1-1102086456
Gek1
2004-12-03 18:07
2004.12.19
Dword в Hex


4-1099742073
_Delphin_
2004-11-06 14:54
2004.12.19
Как сделать панель задач?


14-1101843293
saNat
2004-11-30 22:34
2004.12.19
Потоки


1-1102319515
Игорь нтк
2004-12-06 10:51
2004.12.19
восстановление исходного текста


4-1099935287
nof
2004-11-08 20:34
2004.12.19
Manual Memo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский