Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2010, 19:21   #1
Zver1993
Новичок
Джуниор
 
Регистрация: 23.06.2010
Сообщений: 0
По умолчанию Столкновения 3D моделей

Как просчитывать столкновения 3D моделей ландшафта и игрока .
Если можете выложить примеры кода плиз.
Пишу на Delphi
графическая библиотека OpenGl
Заранее спасибо.

Последний раз редактировалось Zver1993; 08.10.2010 в 19:42.
Zver1993 вне форума Ответить с цитированием
Старый 08.10.2010, 19:34   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Пересечения самих моделей почти никогда не просчитывают. Ибо затратно. Вместо этого используют ограничивающие объёмы, например, капсулу, в которую заключают игрока и для которой уже считают столкновения. А как именно считать, зависит от формы представления ландшафта. Можно интерполировать значения карты высот в зависимости от положения игрока (http://www.gamedev.ru/code/faq/?id=3631) и сравнить положение игрока с этой высотой.

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

Последний раз редактировалось Selestis; 08.10.2010 в 20:00.
Selestis вне форума Ответить с цитированием
Старый 09.10.2010, 13:19   #3
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Просчитывать столкновение игрока с ландшафтом не так уж и сложно. Главное здесь это не большие знания по школьной геометрии. Задачу столкновения игрока с ландшафтом можно разбить на несколько не сложных задач. Во первых будет удобно представить игрока как сферу с каким то радиусом. Потом достаточно проверить пересечение сферы с треугольниками из которых состоит ландшафт. Если пересеклись с треугольниками то и с ландшафтом пересеклись. Чтобы узнать пересеклись ли мы с треугольником, нужно знать пересеклись ли мы с его плоскостью. Тут вам поможет уравнение плоскости. Затем проецируем сферу на плоскость треугольника и проверяем пересечение получившейся окружности с рёбрами треугольника. Не так уж и сложно. По крайней мере я такую штуку реализовывал. Тут правда один минус. Нужно чтобы сфера была больше самого большого треугольника. Хотя и тут можно обойти эту проблему. Ну а оптимизации думаю сам сделаешь какие нужно. Например можно карту разбить на блоки, что бы не проверять пересечение со всеми треугольниками.
RomiKon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
столкновения без Delphix somebody94 Помощь студентам 0 29.06.2010 12:10
Открытие 3d моделей в VC++ Corrat Помощь студентам 2 04.05.2010 22:41
создать программу столкновения шаров execute Помощь студентам 4 23.10.2009 13:59
Расчет столкновения шариков. belomorinka Общие вопросы Delphi 3 02.06.2009 18:54
Сопоставление моделей cartoongirl Microsoft Office Excel 6 21.04.2008 14:35