Введение в программирование трехмерных игр с DX9

       

Пересечение луча и плоскости



Пересечение луча и плоскости

Предположим, у нас есть луч p(t) = p0 + tu и плоскость n Ч p + d = 0, и мы хотим определить пересекает ли луч плоскость и, если да, то вычислить координаты точки пересечения. Для этого мы помещаем формулу луча в формулу плоскости и вычисляем такое значение параметра t, которое удовлетворяет уравнению плоскости. Подстановка найденного значения в уравнение луча позволяет вычислить координаты точки пересечения.

Подставляем формулу (9) в формулу плоскости:

Подставляем уравнение луча в формулу плоскости.
Раскрываем скобки.
Выносим за скобки переменную.
Решение для t.

Если значение t не находится в диапазоне [0, ∞), значит луч не пересекает плоскость.

Если значение t находится в диапазоне [0, ∞), точка пересечения находится путем подстановки найденного значения параметра в формулу луча:





Содержание раздела