Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Collision detection 
:(
    Опции темы
ILyAHA
Дата 4.11.2009, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гламурный хакер
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 30.3.2007
Где: Ярославская обл. г.Рыбинск

Репутация: нет
Всего: 3



Приветствую!

Собственно сабж:

Многие понимают, что проблема Collision Detection достаточно сложная(ресурсоемкая).

В некотором проекте используется 3D моделирование, в котором моделируется поведение объктов. В нем потребовалось реализовать некоторую мини-физику(т.е. падение тел на поверхности).
Для представления 3D мира используется графический движок  Axiom. В нем для определения столкновений есть только AABB. Но у AABB есть существенный недостаток - нельзя точно определить, столкнулись ли объкты, ибо AABB это прямоугольный параллелепипед.

Более точно можно определить столкновение с помощью проверки на пересечение полигонов модели.

На движке Axiom я написал приложение, в котором определяется коллизия 2х объектов. Сначала проверяется для каждого из объектов коллизия на AABB. после чего, уже определяется пересечение их полигонов.
На проверку пересечения полигонов объектов из 1300 треугольников и 130 треугольников соответственно, уходит порядка 1й секунды на 4х ядерном AMD. Это не приемлимо.

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

--------------------
<sсriрt>alert('xss')</sсriрt>
PM MAIL   Вверх
mr.DUDA
Дата 4.11.2009, 18:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



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

Ещё более оптимизировано всё в физических движках, можно погуглить по слову trimesh collision.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.