Version: 5.3 (switch to 5.4b)
Обнаружение граней (Edge Detection)
Fisheye

Эффект обнаружения краёв нормалей

Данная версия Edge Detect эффекта создаёт контуры вокруг краев принимая во внимание геометрию сцены. Грани не измеряются цветами, но в нормалях поверхностей и расстоянии соседних пикселей от камеры (нормаль поверхности это “стрелка” указывающая направление, в котором смотрит поверхность и заданной позиции вершины). В случаях, когда два соседних пикселя существенно отличаются друг от друга нормалями и/или расстояниями от камеры, в сцене появится ребро.

Также как и в случае с другими эффектами изображения, этот эффект доступен только в Unity Pro и перед тем как он станет доступен, вы должны установить стандартные Pro ассеты.

Пример обнаружения краёв. Заметьте что контуры граней могут быть сглажены путём добавления антиалиасинга для следования обнаружению краёв.
Пример обнаружения краёв. Заметьте что контуры граней могут быть сглажены путём добавления антиалиасинга для следования обнаружению краёв.

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

Свойства

Свойство: Функция:
Mode Выберите тип фильтра (см. ниже).
Depth Sensitivity Минимальная разница между расстояниями соседних пикселей, которую обнаружит грань.
Normals Sensitivity Минимальная разница между нормалями соседних пикселей, которую обнаружит грань.
Sampling Distance Большие расстояния сэмплирования (по-умолчанию равные 1.0) создают более толстые края, но вместе с этим создают сияющий эффект.
Edges exponent Экспонента используемая для Sobel фильтра. Малые значения обнаруживают малую разницу на краях.
Background options
Edges only Смешать задний план с фиксированным цветом.
Background Цвет используемый во время Edges only является больше 0.

Типы фильтров

Новые SobelDepthThin фильтры предлагают способ обнаружения краёв с другой глубиной на основе таких графических эффектов как глубина резкости, туман или размытия во время движения, так как края не пересекаются с силуэтом объекта:

Edges dont leak into the defocused background and at the same time, the background blur doesnt remove the created edges.
Edges don’t leak into the defocused background and at the same time, the background blur doesn’t remove the created edges.

Note that as only depth is used for edge detection, this filter discards edges inside silhouettes.

SobelDepth works similarly but doesn’t discard edges outside the silhouette of an object. Hence, the ede detection is more precise but doesn’t work well with other depth-based effects.

TriangleDepthNormals is likely the cheapest available filter even though it examines both depth and normals to decide if a pixel resides on an edge, i.e. it detects more than just object silhouettes. A high amount of normal map details however might break this filter.

RobertsCrossDepthNormals shares its properties with the Triangle filter but looks at slightly more samples to determine edges. As a natural byproduct, the resulting edges tend to be thicker.

Аппаратная поддержка

Для этого эффекта требуется видеокарта с поддержкой Shader Model 2 и Depth Textures. Для более подробного ознакомления с темой и списком совместимых аппаратных средств, посетите страницу документации графические возможности аппаратных средств и их эмуляция.

Обнаружение граней (Edge Detection)
Fisheye