Разработка и ромхакинг > Ромхакинг и программирование
создание новых игр для смд с нуля
<< < (2/5) > >>
Insane:
Nemesis_c, ни в коем случае.
планшет имею. Но только привыкаю к нему.
и тихо срисовываю
и кое что сам.
Segaman:
Народ, разъясните пож., что такое коллизия и как вообще можно проверять столкновеня обьектов?
r57shell:
омг, нуб детектед.
Коллизия есть пересечение.
Обычно пересечение и есть столкновение.
Термин коллизия используют в:
1) Играх когда говорят о столкновениях
2) В криптографии когда например говорят о хэшах.
3) В интернете коллизии возникают когда одновременно пытаются в обоих направлениях передать данные...
4) другое...
А теперь: "как вообще можно проверять столкновения объектов?"
Collision Detection тебе поможет (спасиба кэп)
Задача найти пересечение двух объектов сводится к примитивным задачам, типа
1) пересечь прямую с прямой/отрезком
2) пересечь треугольник с прямой/отрезком
3) пересечь треугольник с точкой (ужасно сложно  :lol:)
4) пересечь треугольник с треугольником.
Используемые при потребности максимальных точностей
5) прямая с окружностью
6) окружность с окружностью
7) окружность с треугольником
8) чего в голову взбредёт.
короче другими словами, считаешь какие есть у тебя объекты, а потом уже эти фишки реализовываешь.
После чего остаётся заюзать какое-нибудь пространственное дерево, чтобы ускорить нахождение пересечений, и всё.
Ито они не всегда нужны.
Mr2:
А как быть с 3D объектами? Каждый полигон сканировать на пересечение с чем либо? o_0
r57shell:
нуб 2 детектед.
А треугольники бывают только 2D?) А полигон, не объединение треугольников?)
Ответ: да сканировать, не все конечно... но именно пересечение с треугольниками. Если конечно у тебя объект из треугольников.
"не все конечно" - для этого и есть "пространственное дерево". За такое название не пинать, просто их дофига, BSP, AABB... а как их вместе называют не знаю.
Поидее BSP = Binary Space Partitioning - бинарное разделение пространства. Может "деревья разделения пространства"?))) слишком много букаф.

Добавлено позже:
Вместо "BSP-подобных текник", если очень лень, можно использовать только Bound-Box'ы.
Mr2:

--- Цитата: r57shell от 03 Апрель 2011, 01:01:05 ---Ответ: да сканировать, не все конечно...
--- Конец цитаты ---
А какие сканировать. Допустим катится у меня шарик и надо зафиксировать столкновение со стеной?Придётся сканировать все полигоны шарика? o_0
r57shell:
Ну вопервых раз у тебя шарик, то умные люди сразу проверяют пересечение шарика с чем-то.
А так, да... если у тебя отвёртка катится, то какие-то её треугольники проверять...
Яже вроде уже писал. фигли снова спрашивать. Если не укладывается в твои представления, то это не означает, что делают не так. Погугли Collision Detection и BSP-tree, AABB.
Я не собираюсь подробно описывать то, что уже всеми подробно описано :).

Добавлено позже:
например:
http://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0
http://www.gamedev.ru/articles/?id=30128
Mr2:

--- Цитата: r57shell от 03 Апрель 2011, 12:36:10 ---фигли снова спрашивать.

--- Конец цитаты ---
Не удержался. :lol:

Мне ещё до колизий далеко, я так и непонял как линии рисовать. Там какие то формулы(Алгоритм Брезенхэма) ядрёные.... Рисовать то рисует, а как и почему не понял :-\.Вобщем спасибо за внимание. ;)
AjaxVS:
да никто никогда треугольники не сравнивает. это нереально по производительности.
сравниваются ограничивающие объемы. обычно рассчитывают прямоугольный параллелепипед, в который помещается вся модель, проверяется пересечение такого кубика со всеми остальными, которые рядом находятся. потом, если надо, проверяется пересечение с другими, более мелкими кубиками, в которые помещаются части моделей (рука, голова, etc). алгоритмы легко ищутся, как подсказал r57shell.


--- Цитата ---Там какие то формулы(Алгоритм Брезенхэма) ядрёные
--- Конец цитаты ---
а ты думал, мы тут пестики в тычинки пихаем? :D копай, учись.. если хочешь.
Mr2:

--- Цитата: AjaxVS от 03 Апрель 2011, 18:38:11 ---да никто никогда треугольники не сравнивает. это нереально по производительности.
--- Конец цитаты ---
То то я и думаю:"Где то тут подвох".  :D
Пока весь шар просканируешь, стены рухнут. ;)

--- Цитата: AjaxVS от 03 Апрель 2011, 18:38:11 ---а ты думал, мы тут пестики в тычинки пихаем? :D копай, учись.. если хочешь.

--- Конец цитаты ---
Низнаю что вы там втыкаете, я точно не втыкаю. :lol:

--- Цитата: AjaxVS от 03 Апрель 2011, 18:38:11 ---копай, учись.. если хочешь.

--- Конец цитаты ---
"Пилите, пилите Шура - они золотые"... :lol:
r57shell:

--- Цитата: AjaxVS от 03 Апрель 2011, 18:38:11 ---да никто никогда треугольники не сравнивает. это нереально по производительности.

--- Конец цитаты ---
Нуб 3 детектед.
Не вешай людям на уши...
Примеры:
1) попадание пуль в Counter Strike/Call of Duty .... короче в FPS играх. (заметь, точки от пуль остаются в точном их попадании...)
2) Выделения объектов тоже бывают такими, пример сходу не скажу.
3) В нормальной физике типа Half-Life 2 без этого не обойтись (например гравипушкой когда играешься, предмет может зацепится любой вершиной...)
4) ходьба по поверхностям. в FPS играх.
5) если подумать можно ещё тонны перечислить.
Не спорю что бывает прибигают к апроксимации моделей для физики. (строится дополнительный мэш, представляющий упрошенную модель, для физики).
На счёт скорости - достигается логарифмичная сложность.
На примере логарифм от 1000000 = 20.
Mr2:

--- Цитата: r57shell от 03 Апрель 2011, 20:21:06 ---1) попадание пуль в Counter Strike/Call of Duty .... короче в FPS играх. (заметь, точки от пуль остаются в точном их попадании...)

--- Конец цитаты ---
Ты видел исходники Counter Strike/Call of Duty/Half-Life 2? :?
pedro:

--- Цитата: Mr2 от 03 Апрель 2011, 22:00:57 ---Ты видел исходники Counter Strike/Call of Duty/Half-Life 2? :?


--- Конец цитаты ---
со стима скачать можно-)
r57shell:
Mr2, нет. Ещё туда добавь Quake3.
evilhell:

--- Цитата: Insane от 30 Март 2011, 01:22:57 ---Nemesis_c, ни в коем случае.
планшет имею. Но только привыкаю к нему.
и тихо срисовываю
и кое что сам.

--- Конец цитаты ---

девушка напоминает Риноа из FF8
Insane:
evilhell, она и есть
r57shell:

--- Цитата: Insane от 03 Апрель 2011, 23:12:41 ---evilhell, она и есть

--- Конец цитаты ---
И правда, а я и не заметил О_о... Видимо потому, что не фанат, да и проходил давно, да и вообще мне FF9 больше понравился :)
serega segas:
ребята оффтоп пошел

Добавлено позже:
обсуждению риноа это не касается
AjaxVS:

--- Цитата ---1) ... точки от пуль остаются в точном их попадании
--- Конец цитаты ---
пересечение луча с OOBB.
вот у меня даже функция есть:

--- Цитата ---DWORD CajGamePhys::CheckCrossLine(DWORD wOI, bool isBullet, D3DXVECTOR3 * vRayStart,D3DXVECTOR3 * vRayEnd, D3DXVECTOR3 * vHit = NULL, DWORD iIgnoreET = 0, DWORD iIgnoreWOI = 0, DWORD iStart = 0) {
...
}
--- Конец цитаты ---
угадай, что возвращает вектор vHit.
пересечение с треугольниками не используется.


--- Цитата ---2) Выделения объектов тоже бывают такими, пример сходу не скажу.
--- Конец цитаты ---
получение проекции и выборка из дерева.
пересечение с треугольниками не используется.


--- Цитата ---3) В нормальной физике типа Half-Life 2 без этого не обойтись (например гравипушкой когда играешься, предмет может зацепится любой вершиной...)
--- Конец цитаты ---
про Half-Life2 ничего не знаю, догадываться не буду.


--- Цитата ---4) ходьба по поверхностям. в FPS играх.
--- Конец цитаты ---
хейтмапы.
пересечение с треугольниками не используется.


--- Цитата ---Не спорю что бывает прибигают к апроксимации моделей для физики. (строится дополнительный мэш, представляющий упрошенную модель, для физики).
--- Конец цитаты ---
причем здесь прогрессивные меши? на генератор научных статей похоже, это тут совсем не в тему.
пересечение с треугольниками не используется.

продолжай троллить нас дальше, дорогой товарищ :)
я, правда, в топик заходить больше не буду - мне с вами все ясно.

зы. чтобы не быть голословным - пример с ландшафтом:

никаких пересечений с треугольниками.
Mr2:

--- Цитата: r57shell от 03 Апрель 2011, 22:43:19 ---Mr2, нет.

--- Конец цитаты ---
:lol:
NOOB №1 детектед!
Ты слышал какое Г играет биталз?  :lol:
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии