Я хотел бы реализовать трассировку лучей в opengl и glsl для рендеринга моделей, загруженных из файлов .obj, но я не понимаю, как именно это сделать. Раньше я использовал файлы obj, но для их рендеринга использовал растеризацию. До сих пор я реализовал простой трассировщик лучей с использованием фрагментного шейдера, который визуализирует некоторые простые формы (плоскости, сферы, блоки). Дело в том, что при трассировке лучей я вычисляю пересечения с объектами, но они также определены во фрагментном шейдере.
Вот как я сделал рендеринг с использованием растеризации: после загрузки данных вершин (положение, нормаль, uvs) я сохраняю их в VBO и привязываю их к VAO. Я отправляю их в вершинный шейдер и преобразую их, умножая на матрицы MVP. Затем я отправляю преобразованные вершины во фрагментный шейдер, когда их затеняю. Но это та часть, которую я не понимаю, как реализовать с помощью трассировки лучей, потому что теперь я преобразовал вершины в качестве входных данных для фрагментного шейдера, а это означает, что я не знаю, как вычислять пересечения лучей с треугольниками сетки. Итак, как это сделать?