Введение

В компьютерной графике, силуэтный край на 3D-объекте, проецируемом на 2D-плоскость (плоскость отображения), представляет собой набор точек, у которых внешняя нормаль поверхности перпендикулярна вектору обзора. Из-за разрывов в нормалях поверхности, силуэтный край также является границей, отделяющей видимую грань от невидимой. Без потери общности, этот край обычно выбирается как ближайший на грани, чтобы в параллельной проекции он соответствовал тому же краю в перспективной проекции. Следовательно, если есть край между видимой гранью и боковой гранью, и другой край между боковой гранью и невидимой гранью, выбирается ближайший из них. Простой пример – это взгляд на куб в направлении, где нормаль грани коллинеарна вектору обзора. Первый тип силуэтного края иногда сложно обрабатывать, поскольку он не обязательно соответствует физическому ребру в CAD-модели. Это может стать проблемой, так как программист может исказить исходную модель, добавив новый силуэтный край. Кроме того, учитывая, что край сильно зависит от ориентации модели и вектора обзора, это может привести к числовой неустойчивости в алгоритме (например, при рассмотрении таких приемов, как снижение точности).

Вычисления

Чтобы определить силуэтный край объекта, сначала необходимо знать уравнение плоскости каждой его грани. Затем, анализируя знак расстояния от источника света до каждой грани, мы можем определить, обращена ли грань к камере или от неё. Силуэтный край (краи) состоит из всех рёбер, разделяющих видимую грань от невидимой.