Алмаз

3Д объект реализован с помощью полигонального моделирования, освещения объекта алгоритмом Блинна-Фонга, а также удаления невидимых граней алгоритмом Робертса.

Основные функции:
Можно регулировать степень освещения (ползунок)
Включить и выключить отображение контура фигуры
Вращение объекта в 3д пространстве мышью

Алгоритм Блинна-Фонга - строиться вектор нормали каждой грани, затем строится вектор от грани к точки освещения (в нашем случае точка освещения статичная и находиться на координате (0,0,500)), и вычисляется угол между векторами. Чем больше угол, тем больше повернута грань от освещения, следовательно ее нужно закрасить более темным оттенком, в чем угол меньше - тем ярче.

Алгоритм Робертса - работает по такому-же принципу, только вычисляется скалярное произведение между вектором нормали каждой грани и камерой. Если произведение меньше 0 и каждая грань заданна точками в порядке обхода против часовой стрелки, то мы видим грань, иначе нет.

Для вращения объекта зажмите левую кнопку мыши.