Вопросы к 28 - chrislvt/CG GitHub Wiki
1)Есть наблюдатель, отрезок, тело. В каком случае наблюдатель какую-то точку на ребре не увидит?
Испускаемый луч пройдёт через преграждающее тело. По отношению к граням тела он будет находиться по положительную сторону.(физическая часть)
(математическая часть) Надо найти область отрезка, которая будет проходить внутри этого тела. Формируем уравнение луча и "пропускаем" его по очереди сквозь каждое тело сцены, чтобы найти интервалы.Что с уравнением луча делаете? Уравнение умножаем на матрицу тела. Получаем вектор и для каждой компоненты вектора требуем чтобы было больше 0.
- Зачем ищем точки протыкания?
Если тела взаимно протыкаются, то образуются новые рёбра, которые могут быть экранированы как самими телами, так и другими объектами. Мы эти рёбра должны тоже получить и исследовать.
3) Где и как искать точки протыкания?
Мы составляем систему и решаем её.Находим область допустимых решений. Точки протыкания располагаются на оси t при альфа = 0.** Почему они там?** Эти точки протыкания находятся на основном отрезке. (Вставка от Курова) Точка протыкания принадлежит не только телу, но и самому отрезку. Уравнение луча получается комбинацией условно говоря уравнения ребра и точки наблюдения. (вставка от Курова закончилась). При альфа равном 0 получим уравнение самого отрезка. Точка протыкания ему принадлежит. Какое значение надо найти на оси альфа? На оси надо найти максимальное и минимальные значение.
4) Как сформировать уравнение луча?
Уравнение луча это уравнение плоскости, проходящей через отрезок и луч.
Q(t,alpha) = P(t) + alpha * g , alpha >= 0
P(t) - произвольная точка, на рассматриваемом отрезке.
alpha - параметр, отвечающий за точку наблюдения (это условно расстояние от точки отрезка до наблюдателя)
alpha >= 0 - точка наблюдения находится перед телом.
5) Ребро может протыкать тело, нужны нам точки протыкания при решении задачи?
Да, нужны.
6) А для чего нам нужны точки протыкания?
Два объекта
Пересекаются
У них новые рёбра образуются