Я трассирую лучи и хотел бы ускорить его с помощью некоторой ускоряющей структуры (kd-tree, BVH, что угодно).Я не хочу кодировать это сам.То, что я пробовал до сих пор:
Выдергивание kd-дерева из pbrt.Есть так много внутризависимостей, что я не смог бы преуспеть в этом, не потянув весь pbrt в мой код.
Дерево AABB CGAL.К сожалению, это, кажется, возвращает только точку пересечения.Не зная, из какого треугольника пришла точка, я не могу эффективно интерполировать цвет по треугольнику.Я хотел бы просто расширить понятие «Точка» цветом, но это кажется невозможным без написания большого количества кода шаблона с нуля.
Написание своего собственного.Итак, я написал свой собственный класс ускорения сетки, и он работает, но он противен и неэффективен.
Итак, если кто-нибудь может предложить простую библиотеку, которую я могуиспользовать для этой цели я бы очень признателен!Все, что мне нужно, это дать суп из треугольника и луч, найти ближайшее пересечение и вернуть индекс этого треугольника.