В этом коротком уроке я покажу способ получения значения расстояния в рендере. Это может быть полезно для создания эффектов в Compositing, основанных на точных значениях, например, для масок, которые активируются только за определённым расстоянием.
Текстовая расшифровка видео
Всем привет! Как вы, возможно, знаете, Depth Render Pass в Compositing позволяет получить расстояние от объектов до виртуальной камеры в виде 32-битного изображения в оттенках серого.

Некоторое время назад я опубликовал урок, в котором рассказывал об этих данных и о том, как использовать их с нормализацией или без неё для создания тумана или других эффектов, зависящих от расстояния.
В этом коротком уроке я покажу способ получения значения расстояния в рендере. Это может быть полезно для создания эффектов в Compositing, основанных на точных значениях, например, для масок, которые активируются только за определённым расстоянием.


Вот ключевой момент: если у вас загружено изображение в Image Editor, и вы щёлкнете правой кнопкой мыши по точке на нём, Blender отобразит значения RGBA этого пикселя в нижней панели. Особенно полезным в этом случае может быть Alpha-канал. Таким образом, вы сможете видеть оригинальный рендер, найти нужную точку, кликнуть по ней и прочитать значение расстояния в поле Alpha. Сейчас покажу, как это работает.

Перед началом рендера я активирую Depth Pass на вкладке View Layer в Properties Editor. В этой вкладке информация о глубине обозначается как Z.

После запуска рендера в редакторе Compositor я подключаю выход Depth от узла Render Layers к входу Alpha узла Viewer.

Затем я открываю Image Editor и в нём открываю изображение Viewer.

Теперь, щёлкая правой кнопкой мыши по изображению, я получаю значения расстояния в поле Alpha, в единицах Blender, от камеры для каждой точки изображения. Щелчок по точке на фоне World Background вернёт значение 10 миллиардов, что является чрезвычайно высоким числом и используется для обозначения практически бесконечного расстояния виртуальной вселенной.

Этот метод работает как с обычным Depth Pass, так и с его нормализованной версией. Разница в том, что ненормализованное значение отражает фактическое расстояние в единицах Blender между объектами и виртуальной камерой, тогда как нормализованное значение варьируется от 0 до 1: 0, это точка, ближайшая к камере, а 1, самая удалённая. Об этом я уже рассказывал в ранее упомянутом уроке.

Когда Depth Pass не нормализован, клик по одному из надгробий даёт значение около 3585. Чтобы создать маску, которая будет белой для всех объектов, находящихся между виртуальной камерой и этим значением, и чёрной для остальных, нужно вернуться в редактор Compositor и добавить узел Math Less Than в Node-Setup, подключить выход Depth к первому входу Value этого узла и установить второе значение около 3585.


На этом всё для этого короткого урока! До скорой встречи!