Простая библиотека столкновений лучей (бонус, если он загружает 3ds и b3d) - PullRequest
0 голосов
/ 30 мая 2011

Я потратил довольно много времени на поиск простой / быстрой библиотеки c ++ (Win / Linux), которая может ответить на два вопроса: «Этот луч пересекает какой-либо из треугольников?»или «где первое пересечение, если оно есть?».

Я пишу для моей маленькой игры и буду использовать, чтобы увидеть, может ли NPC видеть игрока, а также проверить, если игрокможет упасть полностью на землю (или нет).Треугольники не будут двигаться (хорошо, если вы можете пометить группу треугольников 'on' / 'off', что было бы неплохо).

Я на самом деле нашел некоторые библиотеки, но только не продолженные (или, кажется, такие), какOZCollide например.Конечно, есть все эти новые блестящие физические движки, но мне не нужно 99% того, что они предлагают.

Бонус будет, если библиотека сможет загружать .3ds файлы .b3d и даже лучше, еслиего можно использовать в многопоточной среде (создавая несколько экземпляров поисковых данных).

Спасибо всем!

Ответы [ 2 ]

5 голосов
/ 30 мая 2011

Bullet Physics (http://bulletphysics.org/) - это физическая библиотека, но она состоит из нескольких слоев.
Из-за этого это может использоваться как просто библиотека столкновений, которая весьма эффективна при прохождении лучей через сцену. (Вы не будете использовать или беспокоиться о каких-либо физических особенностях)

Он доступен в Windows и Linux, но также на нескольких других платформах и даже на игровых приставках. Библиотека проверена и профессионально используется различными разработчиками игр.

Он напрямую не поддерживает файлы .3ds, но в нем есть конвейер для получения геометрии из различных приложений трехмерного моделирования, преобразованных в правильный формат, который понимает Bullet.

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

0 голосов
/ 06 июня 2011

Что ж, похоже, не существует «простой и маленькой» библиотеки / кода, поэтому я думаю, что ответ может быть «свернуть свой». Вот что я сделал в любом случае: инструмент, который использует Irrlicht, чтобы загрузить мою (статическую) геометрию, а затем сохранить все данные (треугольник / вершина) в файл, всего 9 операций с плавающей запятой для каждого треугольника. Затем библиотека столкновений, которая загружает данные в октое дерево и тест пересечения треугольника / луча c2005, и она работает ОК.

...