alexprey alexprey

Добро пожаловать!
Выглядит очень впечатляюще, особенно то что это на мобилки! Очень интересно посмотреть на управление, очень жду версии для тестирования!!!

TheDarkestRed TheDarkestRed

"Ночью все кошки серы" 🎮 🐺 🌔🌓🌒🌑

...
y.eletskikh y.eletskikh

Jusper, поиграть можно будет совсем скоро, думаю в феврале

Jusper Jusper

Поиграть уже где-то можно?

Nagral Nagral

Очень полезная информация!

Razz Razz

Jusper,

Может быть, может быть. Читал где то что "бить" надо сразу. Но вмешиваться не берусь, там один хрен человек лучше меня знающий как видео лепить (ютубер Xander)

alexprey alexprey

ruggaraxe, ну учитывая их тонкие лапы, думаю да, это фича)

ruggaraxe ruggaraxe

alexprey,

Все существа попадают в ловушки. Просто там всё сделано достаточно реалистично - если паук не сунул лапку непосредственно в ловушку - то она, естественно, не сработает.

ruggaraxe ruggaraxe

alexprey, ура! Это великолепно! :) Насчет дамага, баланса - это все время настраивается, корректируется в поисках золотой середины :)
Да, моррох в новой версии будет сильнее :) уже добавили ему жирка и мощи ударов...

...
alexprey alexprey

Вухух, я таки прошел первый ярус!

...
TheDarkestRed TheDarkestRed

Бой в чужой шкуре 🎮 🧟‍♂ 🤺

#screenshotsaturday #last_stare_interactive #thedarkestred #indiedev #unity #gamedeveloper #indie

Jusper Jusper

Razz,

с 24-й секунды прямо то, что надо. имхо я бы обрезал начало, его не будут все равно читать как мне кажется.

Jusper Jusper

Поддержи Индикатор чеканной монетой.

Razz Razz

Издатель завёз тизер к игре. По мне так супер-пупер вышло

alexprey alexprey

ruggaraxe, кст да, стелс режим тоже был затещен в новой демке за рогу, тема :)

alexprey alexprey

ruggaraxe,

А я пытался пауков из нор так выманивать, и они вроде даже выходили :D

ruggaraxe ruggaraxe

alexprey, да, это хлебные крошки :)

alexprey alexprey

ruggaraxe, хм, у меня что-то не сработало, попробую еще раз.
А и кст да, не понял прикола с откладываем монет на пол, типа хлебные крошки???))

Логотип проекта Unity

Делаем шейдер для речной воды в Unity

Делаем шейдер для речной воды в Unity

Привет! В этой статье я расскажу о том, как сделал шейдер речной воды для нашей игры. Предполагается, что читатель уже знаком с базовыми понятиями компьютерной графики, такими как карты нормалей и высот, имеет некоторое представление о работе шейдеров, и интересуется примерами реализации некоторых эффектов. Нашу игру мы делаем на Unity, и шейдер написан на HLSL, но статья описывает общий подход и практически не содержит специфики, характерной для этих инструментов. Я надеюсь, что она может быть полезна любому, кто интересуется практической компьютерной графикой для игр.

Так результат работы шейдера выглядит в игре

Сначала нам нужно определить форму волн. Берем normal map волн и поворачиваем в каждой точке в направлении, определяемом картой течений, которая задается тоже как normal map. В результате получим полную карту нормалей для всей поверхности реки:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

Добавляем движение: смещаем волны по X в зависимости от текущего времени:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

К постоянным волнам от течения реки добавляем динамические волны от объектов в игре, взаимодействующих с водой (таких как лодки и их весла, плещущиеся рыбы и прочее). Для этого во время игры на серой текстуре каждый фрейм рисуем карту высот: осветляем там, где волны выше общего уровня, и затемняем там, где ниже. Затем в шейдере считаем нормали этой карты высот и складываем их с нормалями из предыдущего пункта:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

Используем итоговую карту нормалей для получения отражения неба в воде: для каждого пикселя воды мы рисуем пиксель с текстуры неба, смещенный в зависимости от положения относительно центра экрана плюс нормали:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

Вода искажает то, что находится за ней, в зависимости от толщины слоя. Используем GrabPass, чтобы получить текстуру с фоновым изображением, и сместим итоговое изображение в зависимости от карты глубины, задаваемой еще одной текстурой на входе шейдера:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

Волны тоже влияют на толщину слоя воды в каждой отдельной точке, так что карту нормалей из предыдущих пунктов мы также учитываем для этого эффекта:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

Теперь мы складываем все эти эффекты вместе в определенной пропорции (зависящей от глубины и произвольно заданных параметров), и также добавляем собственный цвет воды:

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)

Бонус: разберем параметры шейдера

Делаем шейдер для речной воды в Unity — Unity — DevTribe: инди-игры, разработка, сообщество (Unity, статьи, шейдер)
  • Stream Matrix: Карта нормалей, определяющая направление течения.
  • Depth Map: Карта глубины реки.
  • Water Texture: Текстура, определяющая собственный цвет реки.
  • Waves Normal Map: Карта нормалей волн.
  • Waves Overlay: Карта высот динамических волн (в игровой сцене это RenderTexture).
  • Skysphere Texture: Текстура неба.
  • Segments: Количество сегментов, на которые разбивается область, в каждом сегменте текстура волн поворачивается независимо.
  • Blend Threshold: Определяет гладкость смешивания соседних сегментов.
  • Speed: Скорость течения.
  • Waves Reflection Scale: Насколько сильно волны искажают отражение неба.
  • Camera Reflection Scale: Масштаб неба относительно изображения на экране.
  • Depth Scale: Насколько сильно глубина влияет на искажение дна.
  • Waves Height Scale: Насколько сильно волны влияют на искажение дна.
  • Min Share of Bottom: Насколько хорошо дно видно на максимальной глубине, этот параметр вместе с глубиной в конкретной точке влияет на долю дна в окончательном результате.
  • Sky/Water: Взаимные доли отражения неба и собственного цвета воды в окончательном результате.

Вступайте в наше сообщество, следите за новостями и делитесь нашими статьями с друзьями!

Смотрите также:


Комментарии



Очень любопытно!
Вот только меня интересует такой вопрос: а как вы складываете карту нормалей с картой высот? нормали это все таки вектор направления, а не высота. Было бы любопытно взглянуть на идею преобразования нормали в высоту.

И я правильно понимаю, что это происходит для всего экрана и карта течения и остальные генерируются на ходу? Было бы интересно почитать тоже по этому поводу

Справка