В этом очень коротком уроке я покажу, как создать эффект старого CRT-монитора в наших рендерах Blender, используя изображение и несколько нод в Shader Editor.
Видеоверсия этого руководства в настоящее время недоступна на этом языке. Ниже вы можете посмотреть английскую версию с субтитрами; под видео вы найдете перевод расшифровки на русский язык.
Текстовая расшифровка видео
Всем привет! В этом очень коротком уроке я покажу, как создать эффект старого CRT-монитора в наших рендерах Blender, используя изображение и несколько нод в Shader Editor.
Некоторое время назад я опубликовал видео, в котором показал, как воссоздал свой самый первый компьютерный сетап начала 90-х годов. Проблема той сцены и созданных из неё рендеров заключается в том, что изображение на экране проецируется с помощью ноды Emission, к которой применена текстура изображения. При этом не воспроизводятся цветные точки, характерные для мониторов той эпохи, поэтому изображение выглядит скорее как светящийся постер и делает итоговый результат менее реалистичным.

В то время мониторы создавали изображение с помощью красных, зелёных и синих люминофоров. По сути существовало два типа их расположения. Первый назывался Shadow Mask, где RGB-триады располагались в виде точечного узора. Второй назывался Aperture Grille и отличался организацией люминофоров в виде вертикальных полос. Такой вариант использовался в основном в более дорогих мониторах.

В моём мониторе использовался первый вариант, поэтому первым делом я создал бесшовное изображение в Blender, расположив круги с шейдерами Emission так, чтобы воспроизвести структуру этих люминофоров. Затем я отрендерил всё через Camera, установленную в режим Orthographic, на чёрном фоне. Полученное изображение затем можно повторять много раз как плиточную текстуру.

Затем в сцене Blender с компьютерным сетапом я выбрал материал, назначенный экрану, и добавил ноду Image Texture с изображением люминофорной триады в эту схему нод.

Чтобы изображение выглядело так, словно оно создаётся люминофорными триадами, необходимо выполнить две операции. Первая заключается в умножении изображения на маску. Эту операцию следует выполнить с помощью ноды Color Mix, установленной в режим Multiply, с параметром Factor, равным 1. Результат этого умножения затем нужно подключить к входу Color ноды Emission.

Вторая операция касается настройки отображения маски, поскольку её необходимо уменьшить и повторить много раз. Для этого нужно подключить выход UV ноды Texture Coordinate ко входу ноды Vector Mapping, а затем подключить ноду Vector Mapping ко входу Vector изображения маски.
Чтобы уменьшить масштаб маски и повторить её по UV-развёртке экрана, нужно изменить значения X и Y параметра Scale в ноде Vector Mapping. Можно подключить ноду Input Value ко входу Scale ноды Vector Mapping, чтобы изменять все значения одновременно.

Что касается значения Value, я не выполнял точных расчётов, но имейте в виду, что у CRT-мониторов расстояние между одинаковыми люминофорами, называемое Dot Pitch, часто составляло около 0,3 миллиметра. Монитор диагональю 14 дюймов имел ширину экрана примерно 284 миллиметра, поэтому для достижения правдоподобного эффекта маску люминофоров нужно повторить несколько сотен раз. Точное значение зависит от типа монитора и структуры используемой текстуры.

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

Хорошо, на этом всё для этого видео! Как и для некоторых других моих видео, текстовая версия этого урока и дополнительные материалы доступны на моём сайте по ссылке в описании. Если это видео оказалось полезным, вы можете поддержать меня лайком и подпиской на канал. До скорой встречи!