Я хотел бы реализовать трассировку лучей в opengl и glsl для рендеринга моделей, загруженных из файлов .obj, но я не понимаю, как именно это сделать. Я использовал файлы obj раньше, но я использовал растеризацию для их рендеринга. До сих пор я реализовал простой трассировщик лучей с использованием фрагментарного шейдера, который отображает некоторые простые формы (плоскости, сферы, прямоугольники). Дело в том, что в трассировке лучей я вычисляю пересечения с объектами, но они также определены в шейдере фрагментов.raytracing obj file в opengl/glsl
Вот как я сделал рендеринг с использованием растеризации: После загрузки данных вершин (положение, нормаль, увс) Я храню их в VBO и привязываю их к VAO. Они посылают в вершинный шейдер и преобразуют их, умножая их на матрицы MVP. Затем я отправляю преобразованные вершины в фрагментарный шейдер, когда я их затушевываю. Но это та часть, которую я не понимаю, как реализовать трассировку лучей, потому что теперь я преобразовал вершины в качестве входов в шейдер фрагмента, а это значит, что я не знаю, как рассчитать пересечения лучей с треугольниками сетки. Итак, как это сделать?
см. [Трассировщик луча GLSL во фрагменте с использованием текстуры как геометрия сцены] (https://stackoverflow.com/a/45140313/2521214) – Spektre