Розробка шейдерів води та рідин для графіки

Вода в іграх часто виглядає як холодець — надто рівна, без піни та реалістичного хвилювання. Звичайний шейдер з parallax mapping не дає потрібної глибини. Ми розробляємо шейдери води та рідин, де кожен параметр заточений під платформу: від мобільних до PC і консолей. Реалістична вода вимагає синхрон

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

Інші послуги студії

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
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    142

Вода в іграх часто виглядає як холодець — надто рівна, без піни та реалістичного хвилювання. Звичайний шейдер з parallax mapping не дає потрібної глибини. Ми розробляємо шейдери води та рідин, де кожен параметр заточений під платформу: від мобільних до PC і консолей. Реалістична вода вимагає синхронізації кількох систем: поверхневий шейдер з fresnel, нормал-мап анімація, foam маска, vertex displacement для хвиль та правильно налаштований underwater ефект. Кожна частина впливає на продуктивність, і баланс між якістю та frame budget — основне інженерне завдання. Наш досвід: 30+ проєктів з водними ефектами, гарантуємо стабільний FPS на цільових пристроях. Інвестиції в кастомний шейдер окупаються за рахунок оптимізації та унікального зовнішнього вигляду. Отримайте консультацію інженера з 7-річним досвідом — зв'яжіться з нами.

Які параметри шейдера води впливають на продуктивність?

Ключові фактори: кількість draw calls (batching), роздільна здатність текстур (нормал-мапи, піна), використання Opaque Texture для рефракції, кількість хвильових компонентів у вершинному дисплейсменті. Для мобільних платформ критично: два scrolling normal map (256×256, ASTC 6x6), Fresnel на NDotL апроксимації, foam через Depth Texture (без Opaque Texture), один Sine для хвиль — такий шейдер вкладається в 0.3ms на Galaxy A53.

Як створити кастомний шейдер води для URP?

  1. Вибір типу графа: для мобільних — Unlit з fake lighting через нормальну карту, що економить vertex shader invocations. Для PC/console — Lit з PBR-параметрами.
  2. Scrolling normal maps: два texture sample з різними UV tiling та напрямками scroll (Time + UV offset). Overlay або Blend Normal для об'єднання. Різні швидкості scroll виключають повторення патерну через ~5 секунд.
  3. Fresnel ефект: нода Fresnel Effect + Lerp між двома кольорами води (глибокий та мілкий). Exponent 2–5 для м'якого переходу. Для URP використовуємо NDotL через Normal та View Direction — точніше вбудованого Fresnel.
  4. Depth Fade для піни: Scene Depth мінус Fragment Position дає відносну глибину. Smoothstep = маска foam біля берега. Вимагає Opaque Texture (додатковий blit pass) — для мобільних альтернатива: Depth Texture.
  5. Vertex Displacement для хвиль: Sine нода по UV + Time з різними частотами/амплітудами для 2–3 хвиль. Підсумовуємо з різними Direction — Gerstner wave approximation. Displacement 0.1–0.5 одиниці, інакше z-fighting з об'єктами.

Чому custom шейдер кращий за готовий для стилізованої графіки?

В HDRP починаючи з останньої стабільної версії Unity є Water System — готовий high-quality компонент з tessellation, caustics, underwater. Але він не підходить для стилізованої (cartoon, cel-shading) графіки: vertex-animated foam не підтримується, Shader Graph customization обмежений Water surface нодами. Кастомний шейдер в ShaderGraph дає повний контроль — від кольору до форми хвиль.

Параметр URP кастомний HDRP Water System
Продуктивність 0.3–1.0 ms (mobile) 1.5–3.0 ms (desktop)
Кастомізація Повна через ShaderGraph Обмежена
Підводний ефект Вимагає Custom Renderer Feature Вбудований

Що входить у розробку шейдера води?

  • Вихідний шейдер в ShaderGraph/Amplify/HLSL з коментарями
  • Налаштування для цільових платформ (мобільні, PC, консолі)
  • Документація за параметрами (Fresnel Exponent, швидкість хвиль, кольорова гама)
  • Навчання вашої команди (1-2 години онлайн)
  • Підтримка протягом 30 днів після деплою

Кейс: вода для мобільної гри (з нашої практики)

Мобільна 3D-стратегія на Unity LTS (URP Mobile). Вимога: море на фоні, 60fps на mid-range Android. Обмеження: не більше 0.5ms на water shader. Підсумковий шейдер: два scrolling normal maps (256×256, ASTC), Fresnel на NDotL, foam через Depth Texture, один Sine для хвиль. Ніякого reflection — тільки cube map на Specular. Frame cost: 0.3ms на Galaxy A53. Результат — стабільний 60fps без просідань. Unity Documentation: Optimizing Shaders for Mobile

Строки та вартість

Тип шейдера Строк
Базовий (mobile, URP, без displacement) 2–4 дні
Середній (PC/console, URP Lit, foam і fresnel) 4–8 днів
Високоякісний (HDRP або кастомний з tessellation) 1–2 тижні
Підводний ефект + рефракція 3–5 днів додатково

Вартість розраховується індивідуально після аналізу вашої сцени та платформи. Замовте розробку шейдера води для вашої гри — отримайте консультацію інженера з 7-річним досвідом у геймдеві.

Технічні нюанси для advanced

  • Для рефракції на мобільних: fake refraction через нормальну карту з UV offset на backdrop plane — без grab pass, що економить 0.5ms.
  • Vertex displacement: використання Gerstner waves у вершинному шейдері (сума 2–3 синусів) дає реалістичне хвилювання без фізики. Для LOD об'єктів — спрощений варіант з однією хвилею.
  • Піна: маска depth fade — один з найдешевших способів, але при сильному хвилюванні додаємо noise texture для розриву піни.