Вопросы к 28 - p1xelse/CG GitHub Wiki

1)Есть наблюдатель, отрезок, тело. В каком случае наблюдатель какую-то точку на ребре не увидит?

Испускаемый луч пройдёт через преграждающее тело. По отношению к граням тела он будет находиться по положительную сторону.(физическая часть)

(математическая часть) Надо найти область отрезка, которая будет проходить внутри этого тела. Формируем уравнение луча и "пропускаем" его по очереди сквозь каждое тело сцены, чтобы найти интервалы.Что с уравнением луча делаете? Уравнение умножаем на матрицу тела. Получаем вектор и для каждой компоненты вектора требуем чтобы было больше 0.

  1. Зачем ищем точки протыкания?

Если тела взаимно протыкаются, то образуются новые рёбра, которые могут быть экранированы как самими телами, так и другими объектами. Мы эти рёбра должны тоже получить и исследовать.

3) Где и как искать точки протыкания?

Мы составляем систему и решаем её.Находим область допустимых решений. Точки протыкания располагаются на оси t при альфа = 0.** Почему они там?** Эти точки протыкания находятся на основном отрезке. (Вставка от Курова) Точка протыкания принадлежит не только телу, но и самому отрезку. Уравнение луча получается комбинацией условно говоря уравнения ребра и точки наблюдения. (вставка от Курова закончилась). При альфа равном 0 получим уравнение самого отрезка. Точка протыкания ему принадлежит. Какое значение надо найти на оси альфа? На оси надо найти максимальное и минимальные значение.

4) Как сформировать уравнение луча?

Уравнение луча это уравнение плоскости, проходящей через отрезок и луч.

Q(t,alpha) = P(t) + alpha * g , alpha >= 0

P(t) - произвольная точка, на рассматриваемом отрезке.

alpha - параметр, отвечающий за точку наблюдения (это условно расстояние от точки отрезка до наблюдателя)

alpha >= 0 - точка наблюдения находится перед телом.

5) Ребро может протыкать тело, нужны нам точки протыкания при решении задачи?

Да, нужны.

6) А для чего нам нужны точки протыкания?

Два объекта

Пересекаются

У них новые рёбра образуются