Шейдеры в Unity 3 - Карты нормалей (Normal Map)

Поділитися
Вставка
  • Опубліковано 25 лип 2024
  • Реализуем карты нормалей чтобы имитировать неровности на поверхности 3D-модели.
    00:00 - 1. Вступление
    00:21 - 2. Импортируем ассеты в отдельный проект
    04:25 - 3. Забираем Mobot'а
    07:45 - 4. Что такое карты нормалей и зачем они нужны
    10:30 - 5. Как работают карты нормалей
    20:24 - 6. Реализуем функционал карты нормалей
    23:33 - 7. Регулируем силу карты нормалей
    Ссылки:
    ru.wikipedia.org/wiki/Нормаль
    docs.unity3d.com/Manual/Stand...
    assetstore.unity.com/packages...
    Плейлист:
    • Шейдеры в Unity 0 - Ос...
    Авторство композиции "Forest Ambience" принадлежит TinyWorlds aka Rick Hoppmann.
    Оригинальная версия: opengameart.org/content/fores...

КОМЕНТАРІ • 5

  • @_alexbro_
    @_alexbro_ Рік тому

    а я все тащил в проект. теперь переделаю) очень полезное замечание
    Вопросы:
    1 как теперь применить это все на большом террейне. нужно создавать шейдер размером с террейн или можно как то выбрать нужные области в террейне?
    2 возможно не по теме, чтобы создать в каком то месте траву, которую можно скосить и она со временем вырастет, это тоже шейдеры?

    • @ImperativeGames
      @ImperativeGames  Рік тому +1

      Вопросы сложные, на к. нет простого и однозначного ответа. Но:
      1) Если вам просто нужно иметь простые переходы на террейне вы можете рисовать текстуры с помощью строенного инструментария, и без такого (или подобного) шейдера.
      Если же вам действительно нужные крутые-продвинутые эффекты на террейне вроде многослойности или сложносоставного ландшафта (как тут ua-cam.com/video/ptMwAvPWy7w/v-deo.html) - тут всё сложнее чем просто использование шейдера, нужно разбираться в том как работает Unity-террейн и интегрировать в него.
      -
      Более реалистичным видится использование готового ассета.
      Например, этого assetstore.unity.com/packages/tools/terrain/gts-glyph-terrain-shader-225272
      У него полный суповой набор:
      Detail injection - add detail to break up tiling and add interest
      Geo injection - add sedimentary formation on selected textures
      Height blending - blend textures together based on their relative height
      Snow injection - add snow to your terrain, integrated with Gaia
      Tesselation - make your rocks pop with tesselation (HDRP only)
      Texture variation - add visual interest to your terrain render
      Stochastic variation - remove texture tiling with stochastic variation
      Triplanar cliffs - preserve texture detail on vertical surfaces
      Mesh support - run GTS on pure mesh-based terrains
      -
      Полностью альтернативным является использование 3D-моделей ака мешей вместо террейна (вышеупомянутый Mesh support). Тогда вам не нужно разбираться в сложных системах Unity.
      Но надо иметь 3D-модель ландшафта и заморачиваться с оптимизацией и всеми вещами, к. за нас делает террейн Unity.
      2) С травой тоже может быть несколько вариантов. НО самый простой и к. я рекомендую - просто использовать террейн Unity, он позволяет делать траву с GPU Instancing'ом:
      docs.unity3d.com/Manual/terrain-Grass.html
      Конечно, можно сделать самому, используя шейдеры для травы, но сделать лучше чем это делает террейн - не так просто.
      И тут главное - если вы хотите разрабатывать игры, то советую разрабатывать игры, а не системы для них.

    • @_alexbro_
      @_alexbro_ Рік тому

      @@ImperativeGames спасибо)

  • @Aleksey-Kon
    @Aleksey-Kon 11 місяців тому

    у меня почему-то не работает. я делаю не 3д а 2д, но разница не большая, что со стандартным шейдером, что с таким как в видео. либо спрайт пропадает вообще либо становится бело странным, а не работает как надо

    • @ImperativeGames
      @ImperativeGames  11 місяців тому

      Причин может быть, конечно, множество. Но первым делом надо проверить, используете ли вы Built-in Render Pipeline
      Project Settings -> Quality -> поле Render Pipeline Asset должно быть пустым