Разработка шейдеров прозрачности для стекол AR шлемов в играх

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Разработка шейдеров прозрачности для стекол AR шлемов в играх
Сложная
~1-2 недели
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

tags: [vr-ar]

Разработка шейдеров прозрачности для стекол AR шлемов в играх

HoloLens 2 и Magic Leap 2 — аддитивные дисплеи. Они не рисуют чёрный фон: голограммы накладываются прямо на то, что видит пользователь через стекло. Это фундаментально меняет логику шейдеров. «Прозрачность» здесь — не альфа-блендинг поверх виртуального фона, а буквальная прозрачность для реального мира, проходящего через линзы.

Разрабатывать шейдеры для таких дисплеев без понимания их физической природы — значит получить графику, которая либо неразличима в светлых помещениях, либо выглядит как мутное пятно на тёмных объектах.

Физика аддитивного дисплея и её следствия для шейдеров

На аддитивном дисплее пиксель с цветом (0, 0, 0) — абсолютно прозрачный. Чёрный цвет буквально не излучает свет. Это значит, что тёмные участки голограммы не маскируют реальный мир — сквозь них всё видно. Для создания иллюзии непрозрачного объекта нужно, чтобы объект был достаточно ярким относительно окружающего освещения.

Следствие первое: стандартные шейдеры Unity с Rendering Mode = Opaque будут выглядеть не непрозрачными, а полупрозрачными, потому что их «тёмные» части — тени, AO, затемнённые грани — пропускают реальный мир насквозь. Шейдер для HoloLens должен минимизировать тёмные области. Ambient lighting нужно поднимать значительно выше физически корректных значений — на практике Environment Lighting Intensity Multiplier от 1.5 до 2.5 в зависимости от сцены.

Следствие второе: альфа-канал на аддитивном дисплее работает иначе. Alpha = 0 даёт полную прозрачность (не виден ни реальный мир, ни голограмма — пиксель просто не светится). Но промежуточные значения альфа используются для плавного появления/исчезновения голограммы, а не для смешения с задним планом. Нет никакого «заднего плана» кроме реального мира.

Шейдер для управляемой прозрачности стекла

Основная задача в играх для AR шлемов — создать эффект прозрачного стекла с контролируемой степенью помутнения. Например, защитный щит, который частично блокирует обзор, или иллюминатор космического корабля.

В ShaderGraph (URP) это строится так: базовый цвет объекта смешивается с Fresnel Effect для акцента на краях (стекло сильнее отражает под углом). Зона чистой прозрачности в центре — Alpha близко к нулю, края — Alpha выше через Smoothstep. На тёмном объекте за стеклом эффект будет заметен, на светлом — почти нет, потому что аддитивный дисплей не затемняет реальный мир.

Для эффекта «запотевшего стекла» используется Procedural Noise в качестве маски — она нарушает однородность прозрачности и создаёт органичный вид. Но нельзя использовать тёмные значения в noise-маске для «помутнения»: тёмные области просто станут прозрачными. Помутнение на аддитивном дисплее делается светлым цветом поверх, не тёмным.

Отдельный шейдер — окантовка объекта. Стандартный outline через Stencil или Normal Extrusion не работает хорошо на аддитивных дисплеях, потому что тёмная окантовка невидима. Нужен светящийся outline: Emission на контурных пикселях с интенсивностью 2–4, цвет — тёплый или насыщенный (синий, зелёный работают лучше красного из-за спектра аддитивного дисплея).

Работа с MRTK и Mixed Reality Toolkit

Для HoloLens разработка ведётся через MRTK (Mixed Reality Toolkit). В MRTK есть готовый MRTKStandardShader, оптимизированный под аддитивные дисплеи — он учитывает ограничения платформы и работает значительно лучше стандартного URP Lit шейдера. Но его возможности ограничены, и для кастомных эффектов нужно писать кастомные шейдеры с учётом тех же принципов.

Magic Leap 2 использует другой SDK — Magic Leap Unity SDK, — но физика дисплея та же: аддитивный, только более яркий. Шейдеры, написанные для HoloLens, в основном переносятся напрямую, но нужно пересматривать пороги ambient intensity из-за разной яркости дисплея.

Кейс: интерфейс кабины с прозрачными экранами

В AR-симуляторе кабины самолёта нужно было реализовать приборные панели, которые видны поверх реального кресла пилота. Экраны должны выглядеть как стеклянные — с видимостью сквозь них реального оборудования за экраном.

Проблема: эмиссивные элементы интерфейса (шкалы, числа) были яркими и читаемыми. Но «подложка» экрана — тёмно-серый прямоугольник — была практически невидима (аддитивный дисплей не показывает тёмные цвета). Интерфейс висел «в воздухе» без рамки, которая давала бы ощущение физического экрана.

Решение: замена тёмной подложки на слабо светящуюся (Emission 0.15, цвет тёплый серый). Это добавило достаточно свечения, чтобы граница экрана была видна, но не настолько яркого, чтобы перекрывать реальный мир. Дополнительно — Fresnel на краях корпуса с интенсивностью 0.3 для акцента формы.

Тип шейдера Сложность Ориентировочные сроки
Кастомизация MRTKStandardShader Средняя 2–5 дней
Шейдер прозрачного стекла (ShaderGraph) Средняя 3–7 дней
Сложный эффект (запотевание, динамическое помутнение) Высокая 1–3 недели
Портирование шейдеров между платформами Зависит от набора 1–2 недели

Стоимость рассчитывается после анализа требований и целевой платформы (HoloLens 2, Magic Leap 2, или кастомное AR-устройство).