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

Как же найти пересечение луча с формой, неявная форма записи которой имеет вид F(P)? Предположим, что луч исходит из точки S в направлении с. (Это более простая форма записи по сравнению с той, в которой используется стартовая точка еуе и направление dirrc.) Тогда уравнение луча имеет вид:

r(t)~S + ct. (14.8)

Нетрудно сформулировать общую теорию. Все точки на поверхности формы удовлетворяют уравнению F(P) - 0, а луч соударяется с поверхностью в каждый момент времени, когда точка г(г) совпадает с поверхностью. Поэтому условие совпадения луча с точкой на поверхности имеет вид F(r(t )) = 0. Это произойдет в «момент соударения» thk, который можно определить, решив уравнение:

F(5+c*blt)-0. (14.9)

Основная часть работы при трассировке лучей состоит в попытках эффективного решения этого уравнения для интересующих нас объектов. Ниже мы увидим, что для простых форм, таких как плоскость или сфера, это уравнение решается просто.

14.4.1. Пересечение луча с базовой плоскостью

В сцену часто включают полы и стены какой-нибудь комнаты. Их легко моделировать плоскостями. Иногда они имеют один и тот же цвет, а иногда могут покрываться «текстурой», например шахматным узором или оцифрованным изображением.

Базовая плоскость - это плоскость ;п/, или 2 = 0, поэтому ее неявная форма имеет вид: F(x, у, z) = z. Луч 5 + et пересекает базовую плоскость, когда Sz + cth » 0. Это простое линейное уравнение, его решение имеет вид:

(14.10)

Если сг - 0, то луч движется параллельно плоскости и пересечения нет (за исключением, разумеется, случая, когда 52 также равно нулю; тогда луч ударяется в конец плоскости и не может быть виден). В остальных случаях луч пересекается с плоскостью в точке Рш = 5- с(52/сг). (Почему?)


⇐ Предыдущая| |Следующая ⇒