Край силуэта - Silhouette edge

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

С первым типом кромки силуэта иногда сложно работать, потому что она не обязательно соответствует физической кромке в модели САПР. Причина, по которой это может быть проблемой, заключается в том, что программист может испортить исходную модель, добавив в проблему новый край силуэта. Кроме того, учитывая, что край сильно зависит от ориентации модели и вектора обзора, это может внести числовую нестабильность в алгоритм (например, когда такой трюк снижение точности Считается).

Вычисление

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

Используя этот результат, мы можем определить, обращено ли лицо вперед или назад.

Края силуэта состоят из всех края, отделяющие лицевую сторону от обратной стороны.

Подобная техника

Удобная и практичная реализация обнаружения передней / задней стороны - использование единица нормальная плоскости (которая обычно предварительно вычисляется для световых эффектов), затем просто применяя скалярное произведение положения источника света к нормали к плоскости и добавив Компонент D плоского уравнения (скалярное значение):

Где plane_D легко вычисляется как точка на скалярном произведении плоскости с единичной нормалью к плоскости:

Обратите внимание однородные координаты, L_w и d не всегда нужны для этого вычисления.

После этого расчета вы можете заметить индикатор на самом деле расстояние со знаком от плоскости до позиции источника света. Это расстояние индикатор будет отрицательным, если он находится за лицом, и положительным, если он находится перед лицом.

Эта же техника использовалась в 2002 г. СИГГРАФ документ "Практические и надежные объемы теней для аппаратно-ускоренного рендеринга".

внешние ссылки