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

Разработка шейдеров прозрачности для стекол AR шлемов в играх Мы разрабатываем оптимизированные шейдеры для AR-шлемов, учитывающие особенности аддитивных дисплеев. Наш опыт включает проекты для HoloLens 2 и Magic Leap 2, где каждая голограмма должна быть чёткой и естественно вписываться в окружен

Наши компетенции

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

Понятные ролики для обучения сотрудников и клиентов

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    95

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

Мы разрабатываем оптимизированные шейдеры для AR-шлемов, учитывающие особенности аддитивных дисплеев. Наш опыт включает проекты для HoloLens 2 и Magic Leap 2, где каждая голограмма должна быть чёткой и естественно вписываться в окружение. Без понимания физики дисплея шейдеры дают графику, которая либо неразличима в светлых помещениях, либо выглядит как мутное пятно на тёмных объектах.

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

Почему стандартные шейдеры не подходят для AR-шлемов?

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

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

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

Как создать эффект прозрачного стекла в ShaderGraph?

Основная задача в играх для 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). Согласно официальной документации Microsoft, есть готовый MRTKStandardShader, оптимизированный под аддитивные дисплеи — он учитывает ограничения платформы и работает значительно лучше стандартного URP Lit шейдера. Но его возможности ограничены, и для кастомных эффектов нужно писать кастомные шейдеры с учётом тех же принципов.

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

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

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

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

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

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

Процесс разработки шейдера под AR

  1. Анализ платформы и требований — определяем целевое устройство (HoloLens 2, Magic Leap 2 и т.д.), требования к производительности и визуалу.
  2. Проектирование шейдера — выбираем подход: кастомизация MRTKStandardShader или создание кастомного шейдера в ShaderGraph/HLSL.
  3. Реализация — пишем шейдер, настраиваем параметры (ambient, emission, alpha).
  4. Тестирование на устройстве — проверяем в реальных условиях освещения, оптимизируем draw calls и fill rate.
  5. Деплой и сопровождение — передаём исходники, документацию, обучаем команду.

Что входит в работу

Этап Результат
Исходные коды шейдера .shader или .shadergraph, включая комментарии
Конфигурация материалов Unity Material с настроенными параметрами
Документация Описание принципов работы и инструкция по настройке
Поддержка Консультации в течение 1 месяца после сдачи
Типичные ошибки при разработке шейдеров для AR
  • Использование тёмных цветов для помутнения — на аддитивном дисплее они становятся прозрачными.
  • Игнорирование Fresnel Effect — без него стекло выглядит плоским.
  • Применение стандартного Outline без эмиссии — окантовка невидима.
  • Отсутствие тестов при разном освещении — шейдер может работать только в темноте.

Сроки и стоимость

Стоимость разработки шейдера варьируется в зависимости от сложности, точную сумму рассчитываем после анализа вашего проекта — свяжитесь с нами для оценки. Мы гарантируем корректную работу на всех поддерживаемых устройствах и предоставляем исходные коды. Наш опыт — более 10 лет в геймдеве и AR, свыше 50 реализованных проектов. Получите консультацию прямо сейчас.