Collision(Blitz3d)
|
|
danielskachkov | Дата: Понедельник, 06 Августа 2012, 12:27 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Доброго времени суток. Нельзя ли в blitz3d реализовать per poly collision? То есть мы проверяем на столкновение каждый полигон. И если можно, то как?
Из-за преступной халатности работников Эрмитажа картина Казимира Малевича "Черный квадрат" два месяца провисела вверх ногами.
|
|
| |
Нохчи | Дата: Понедельник, 06 Августа 2012, 12:47 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Нельзя, ибо не нужно такое. Ты объясни исходную задачу, наверняка можно решить без таких извратов.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
Archido | Дата: Понедельник, 06 Августа 2012, 13:51 | Сообщение # 3 |
Сэнсэй
Сейчас нет на сайте
| Вообще можно , но насчет Blitz'а не скажу. Но реальное применение этому сложно найти, часто можно сделать проще другими способами, как выше заметили. Но вообще это вполне реализуемо и даже будет работать И уточню - хочется per poly collision между моделями (геометрия) с обеих сторон (т.е. одна с другой), да?
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Понедельник, 06 Августа 2012, 13:52 |
|
| |
ЗелёныйГоблин | Дата: Понедельник, 06 Августа 2012, 14:28 | Сообщение # 4 |
In-Games
Сейчас нет на сайте
| Quote (danielskachkov) Доброго времени суток. Нельзя ли в blitz3d реализовать per poly collision? То есть мы проверяем на столкновение каждый полигон. Можно, но зачем там извращаться? Я уверен что есть более подходящий способ реализовать твою задумку. MeshesIntersect (mesh1,mesh2 ) Аргументы: mesh1 - первый объект - модель. mesh2 - второй объект - модель. Возвращает правду если объекты пересекаются. Ещё как выход можно подкрутить физическую библиотеку, а она уже включает в себя методы проверки коллизий нужные тебе.
Bakuman Death Note The Future Diary Базовые знания- это умение создать хоть что-то на экране, находящееся в движении по чему-то, и соприкасающееся с чем-то. (Основы ЯП)©Умный игродел
|
|
| |
danielskachkov | Дата: Понедельник, 06 Августа 2012, 19:13 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Quote (Нохчи) Ты объясни исходную задачу, наверняка можно решить без таких извратов. Хочу реализовать стрельбу в шутере.
Из-за преступной халатности работников Эрмитажа картина Казимира Малевича "Черный квадрат" два месяца провисела вверх ногами.
|
|
| |
Нохчи | Дата: Понедельник, 06 Августа 2012, 20:13 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Quote (danielskachkov) Хочу реализовать стрельбу в шутере. Если речь идет об каком-нибудь автомате/пистолете, то достаточно знать направлен ли прицел правильно, если из оружия реально что-то вылетает, то столкновения проверяй с кубом/конусом/цилиндром. То есть цепляешь к персу простую прозрачную фигуру максимально близкую по размеру и проверяешь столкновение с ней.
Многие вопросы по Windows отпадут, если посмотреть тут
Сообщение отредактировал Нохчи - Понедельник, 06 Августа 2012, 20:32 |
|
| |
ЗелёныйГоблин | Дата: Понедельник, 06 Августа 2012, 21:53 | Сообщение # 7 |
In-Games
Сейчас нет на сайте
| Quote (danielskachkov) Хочу реализовать стрельбу в шутере. Зачем для стрельбы так извращаться? Почитай уроки и посмотри как там реализовано.
Bakuman Death Note The Future Diary Базовые знания- это умение создать хоть что-то на экране, находящееся в движении по чему-то, и соприкасающееся с чем-то. (Основы ЯП)©Умный игродел
|
|
| |
Archido | Дата: Понедельник, 06 Августа 2012, 22:00 | Сообщение # 8 |
Сэнсэй
Сейчас нет на сайте
| danielskachkov Да, для стрельбы как раз и подходит такой Per Poly Collision, именуемый как RayCast - пересечение луча с треугольником. Пускают луч из оружия / камеры и проверяют пересечение сначала с AABB модели и если они пересекаются, то далее уже проверяется пересечение с пачкой треугольников. Для оптимизации геометрию можно использовать попроще для RayCast'a, нежели для рендеринга.
Наверняка в Blitz'e такое есть
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Сообщение отредактировал Archido - Понедельник, 06 Августа 2012, 22:14 |
|
| |
Нохчи | Дата: Вторник, 07 Августа 2012, 00:40 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| Я задавал этот вопрос несколько лет назад, и мне сказали что такой фичи в блице нет и надо либо прикрутить physx wrapper(который сейчас фиг найдешь) и использовать этот самый RayCast, или сделать как написано в #6. Конечно вполне возможно что человек отвечавший мне не все знал.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |