разбиение сетки и быстрый поиск

0

Я пишу raytracer, и я пытаюсь разбить некоторые данные сетки (точки и грани), чтобы я мог вычислять пересечения.

В настоящее время я для каждого вычисления пересечения должен искать каждое лицо и видеть, пересекается ли луч с ним. Я пытаюсь найти более быстрый способ сделать это, а именно только поиск соответствующих лиц.

Какая хорошая структура данных для хранения данных графа (kd tree? Равнораздельное пространство?) Как я могу найти релевантные пробелы/грани с учетом луча?

PS: Я использую C++

Теги:
data-structures
raytracing

1 ответ

1
Лучший ответ

Структура данных пространственного разделения данных (дерево BSP, дерево kD или октет) или даже более общая иерархия ограничивающих томов (дерево AABB) должны выполнять эту работу. См. Ответ на соответствующий вопрос для построения дерева BSP из сетки и ее обхода. Библиотека C++ CGAL предоставляет структуру данных дерева AABB с требуемой конструкцией и запросом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню