|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.10.2010, 19:21 | #1 |
Новичок
Джуниор
Регистрация: 23.06.2010
Сообщений: 0
|
Столкновения 3D моделей
Как просчитывать столкновения 3D моделей ландшафта и игрока .
Если можете выложить примеры кода плиз. Пишу на Delphi графическая библиотека OpenGl Заранее спасибо. Последний раз редактировалось Zver1993; 08.10.2010 в 19:42. |
08.10.2010, 19:34 | #2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Пересечения самих моделей почти никогда не просчитывают. Ибо затратно. Вместо этого используют ограничивающие объёмы, например, капсулу, в которую заключают игрока и для которой уже считают столкновения. А как именно считать, зависит от формы представления ландшафта. Можно интерполировать значения карты высот в зависимости от положения игрока (http://www.gamedev.ru/code/faq/?id=3631) и сравнить положение игрока с этой высотой.
На голом OpenGL пишете или движок какой? В таком случае, что представлюет из себя модель ландшафта и игрока? И хотелось бы знать о задаче побольше...
Изобретатель велосипедов
Последний раз редактировалось Selestis; 08.10.2010 в 20:00. |
09.10.2010, 13:19 | #3 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Просчитывать столкновение игрока с ландшафтом не так уж и сложно. Главное здесь это не большие знания по школьной геометрии. Задачу столкновения игрока с ландшафтом можно разбить на несколько не сложных задач. Во первых будет удобно представить игрока как сферу с каким то радиусом. Потом достаточно проверить пересечение сферы с треугольниками из которых состоит ландшафт. Если пересеклись с треугольниками то и с ландшафтом пересеклись. Чтобы узнать пересеклись ли мы с треугольником, нужно знать пересеклись ли мы с его плоскостью. Тут вам поможет уравнение плоскости. Затем проецируем сферу на плоскость треугольника и проверяем пересечение получившейся окружности с рёбрами треугольника. Не так уж и сложно. По крайней мере я такую штуку реализовывал. Тут правда один минус. Нужно чтобы сфера была больше самого большого треугольника. Хотя и тут можно обойти эту проблему. Ну а оптимизации думаю сам сделаешь какие нужно. Например можно карту разбить на блоки, что бы не проверять пересечение со всеми треугольниками.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
столкновения без 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 |