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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм взаимодействия с миром, Взаимодействия с окр. миром в 3д 
:(
    Опции темы
Kergan
Дата 27.8.2005, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

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



Доброго времени суток
предположим, пишу 3д-приложение. Кто-нибудь знает самый-самый хороший алгоритм взаимодействия с окружающим миром (управляемый юзверем чудик должен натыкаться на стены, взбираться по холмам, натыкаться на предметы и т.д.). Заранее прошу прощения у модераторов - хотел было запихнуть в "С++ Мультимдеа", но тут более к месту... наверное.
Пока у меня все примитивно - холмов нет ваообще, а стенки все прямые. Сохранил координаты всех углов и общим уравнением прямой проверяю расстояние игрока до стены(от точки игрока отходит прямая, вторая ее точка расположена на линии взгляда и вот уже вторая прямая). Но это не универсальный алгоритм. Подскажите, а...
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
podval
Дата 27.8.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


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

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



Модератор: тема перемещена из раздела "Алгоритмы"


PM WWW ICQ   Вверх
mr.DUDA
Дата 27.8.2005, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Если у тебя просто ящик, в котором находится игрок - тут всё просто. Но если стенок много (лабиринт, типа), нужно определять в каком коридоре находится игрок и действовать соответственно. Конкретный исходник ты сможешь написать сам, скорее всего никто тебе его не напишет.

З.Ы. для более сложных случаев взаимодействия, есть физические библиотеки. Их много, есть бесплатные: Newton, Tokamak, ODE.


--------------------
user posted image
PM MAIL WWW   Вверх
CD20
Дата 2.9.2005, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.8.2005

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



Для начала нужно разбивать уровень на блоки и обрабатывать физические взаимодействия с игроком в том блоке, где он находится. Для простых взаимодействий(например: подобрать предмет или упереться в предмет) лучше использовать алгоритмы с BoundingBox'ом. Вообщем - то все взаимодействия можно так обрабатывать, но если тебе нужно например полигональное попадание, то тут малость сложнее: придётся обрабатывать ещё и полигоны моделей, после того, как зафиксировано их взаимодействие BoundingBox'ами.
PM MAIL   Вверх
Dubinsky
Дата 2.10.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

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



есть что то полезное в Директ Х 9 СДК - в примерах , там есть пример проверки выбора треугольника из модели мышкой ... посмотри по моему там всё что нужно ...
PM MAIL WWW   Вверх
DragonFire
Дата 3.10.2005, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



А можете поподробнее, насчет BoundingBoxов и если можно с примером на Delphi и OpenGL... smile


--------------------
PM MAIL ICQ   Вверх
Dubinsky
Дата 3.10.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

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



О чёрт , перепутал тему ! извините ... хотя этот пример с выбором полигона в ДХ СДК, всё равно интересен и с точки зрения проверки столкновений ...

ещё читал про отсечение невидимых полигонов методом БСП (бинари спэйс партишнг ) там что то было сказано про то , что этот алгоритм не только отсекает нивидимые полигоны , облегчая жизнь видеокарте но и каким то магическим образом помогает при проверке столкновений , если кто знает объясните может принцип действия ?
PM MAIL WWW   Вверх
Batou
Дата 3.10.2005, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

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



Если мир разложен по BSP, получается меньше проверок на столкновение. Сама проверка происходит по тем же алгоритмам.
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
Dubinsky
Дата 3.10.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

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



ааа ! понял !

но как я понял мир один раз разкладывается на дерево , во время инициализации ? если да то мир поменяется и дерево заново строить надо ?
PM MAIL WWW   Вверх
Batou
Дата 3.10.2005, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.4.2005

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



Насколько я знаю дерево строится один раз, при компиляции карты (в редакторе карт). В процессе игры дерево не перестраивается.
--------------------
.GitS.Мысли творят действительность , а бремя доказательства лежит на сомневающемся.
PM MAIL WWW   Вверх
Dubinsky
Дата 3.10.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

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



ну это если карта не меняется (халф лайф , дум 3 и т.п. хлам ) , сейчас вообще модно всё делать красиво и без вкуса , а если как в Red Faction ? там же карта перестраивается сама ( ну ладно при помощи встроенного редактора - игрока с динамитом ) там же всё меняется - кол-во и положение полигонов относительно друг друга , в таком случае дерево не может быть статичным , или я не прав ?
PM MAIL WWW   Вверх
DENNN
Дата 4.10.2005, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

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



Никто не засталяет строить дерево для абсолютно всех объектов в сцене.
PM ICQ   Вверх
mr.DUDA
Дата 4.10.2005, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(DENNN @ 4.10.2005, 08:45)
Никто не засталяет строить дерево для абсолютно всех объектов в сцене.

Т.е. мы можем разбить свою игровую модель на статичное окружение (карта и т.п.) и на динамические объекты (модельки игроков, снарядов, бочек, кирпичей и т.п.). Сие есть классическая BSP-реализация игровой карты.


--------------------
user posted image
PM MAIL WWW   Вверх
Dubinsky
Дата 4.10.2005, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

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



т.е если на карте ничего нет статичного то и дерево не построить , как же тогда поступили ребята , Red faction , делавшие ? есть ещё какие то способы ?
PM MAIL WWW   Вверх
Dmil
Дата 4.10.2005, 19:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











можно еще в этой теме вопрос задать - новую не хочется создавать?
тоже не могу понять основ взаимодействия, а хочется.
могу привести для примера игру
Rally pro contest на сайте mophun.com
там машина едет по дороге и может заезжать на обочины, при этой ее, естественно, наклоняет.
вопрос:
как понять что машина движется по трассе а не по обочине?
машина наклоняется в соответствии с наклоном трассы. а как это делается?
в 3d движке нет больших возможностей, в основном, простой обсчет матриц.
может кто-нибудь по простому объяснить?
заранее спасибо!

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

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

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

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

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


 




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


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

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