Мне неизвестны какие-либо библиотеки, которые удовлетворяют вашему запросу (по крайней мере, если я не решу опубликовать код для моего собственного трассировщика ...).
На самом деле написание трассировщика не так уж сложно. Я настоятельно рекомендую приобрести копию «Введение в трассировку лучей» Гласснера. В нем довольно легко понять математику, а также есть целый раздел «Как написать трассировщик лучей».
В любом случае, «библиотека» не так уж много полезна сама по себе - почти каждый луч трассировщик имеет свои внутренние библиотеки, но они специфичны для трассировщика. Обычно они включают в себя:
- базовый класс для представления трехмерных объектов
- подклассов этого для каждого геометрического примитива
- векторные и матричные классы (3D и 4D)
- текстурирующие функции и / или классы
- классы освещения различных типов (точечный свет, прожектор и т. Д.)
Для моего собственного трассировщика я фактически использовал пакеты javax.vecmath
для # 3 выше, но должен был написать свой собственный код для # 1 и # 2, основанный на книге Гласснера. Все дело в двух тысячах строк кода, а большинство отдельных классов имеют длину около 40 строк.