Как сделать пересечение плоскости луча?

Как рассчитать пересечение между лучом и плоскостью? Я посещаю все возможные веб-сайты, которые могу найти, и вот чего я достиг:

float denom = normal.dot(ray.direction);

if (denom > 0)
{
    float t = -((center - ray.origin).dot(normal)) / denom;

    if (t >= 0)
    {
        rec.tHit = t;
        rec.anyHit = true;
        computeSurfaceHitFields(ray, rec);
        return true;
    }
}

Это не работает: s
Моя функция ввода:
Луч: содержит происхождение и направление.
rec: контейнерный класс для хранения информации о попаданиях (bool, t и т. д.)

Моя функция имеет доступ к плоскости:
точка: точка, которая определяет плоскость
normal: нормаль, определяющая плоскость

Ответы на вопрос(3)

Ваш ответ на вопрос