Трассировка лучей

В статьях про трассировку лучей всегда приводиться пример со сферой , потому что она задаётся простым уравнением, но а как быть с другими примитивами. При растеризации , допустим , любая поверхность аппроксимируется треугольниками, и это понятно. Но вот не понятно , как при помощи трассировки лучей отрендерить лицо человека, эту же поверхность нужно представить каким то уравнением ? То есть я хочу понять , каким образом задаётся сцена в движках с рендерингом по методу трассировки лучей, если в движках которые рендерят классической расстеризацией сцена задаётся как набор треугольников.


Ответы (1 шт):

Автор решения: aepot

Да на самом деле лучу без разницы, какая фигура перед ним. Всё что лучу нужно - это вектор нормали к поверхности, куда он попал. Этот вектор используется для рассчёта угла отражения луча, чтобы луч полетел в новом направлении. И т.д. до выполнения 1 из 2 условий: достигнута максимальная глубина трассировки (количество отражений), или луч улетел в бездну, то есть больше не встретил препятствия. Далее в обратном порядке трассировки в точках попадания и суммируется цвет материала и яркость освещения, чтобы получить цвет пикселя на камере.

Вот и всё, форма объекта не имеет значения.

→ Ссылка