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

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

Від імерсивних застосунків до ігрових світів і 3D-сцен

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Розробка шейдерів прозорості для скла AR шоломів в іграх
Складна
~1-2 тижні
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    685
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    866
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    492
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    534

Розроблення шейдерів прозорості для стекол 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-пристрій).