Я пишу трехмерный каркас, который состоит из поверхностей многоугольника, расположенных под разными углами. В определенном разделе моего кода я хочу вычислить яркость поверхности на основе источника света, угол которого задается вектором.
Более конкретно, ориентация поверхности представлена вектором, а источник света также задан вектором. Общеизвестно, что поверхность ярче всего, когда свет падает прямо на нее, или когда разность углов векторов равна 0.
Однако в моем текущем решении мне нужно рассчитать atan () шесть раз для каждого источника света, чтобы получить разницу, которая вычислительно неэффективна.
Есть ли лучший способ?