marserMD

На Пикабу
поставил 141562 плюса и 9830 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
10 лет на Пикабу
8102 рейтинг 31 подписчик 42 подписки 38 постов 4 в горячем

Мой РКН ебашит вообще адовые блокировки.

Мой РКН ебашит вообще адовые блокировки.

Пятничное мое: рендеринг облаков на мобильных.

Как и обещал в предыдущем посту https://pikabu.ru/story/_5527137 , рассказываю как я вот такое рендерю на мобильных:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Отрисовывать облака в реальном времени -- сложная задача даже для компьютеров.


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


Очевидно, что если хочется рисовать облака на мобильных -- придется читерить.


Подготовительная стадия


Формируются карта глубины мира, карта глубины и нормали облаков.


A -- канал прозрачности. Чем темнее -- тем прозрачнее.

RGB -- цветовой канал

Глубина мира:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Глубина облаков:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Нормали облаков:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Стадия преобразования карт:

Карта нормалей размывается. Это делается в два прохода.

По горизонтали:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

По вертикали:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

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


Аналогично размывается карта глубины облаков (тоже в два прохода):

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Теперь к карте глубины облаков применяется шум:

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Фаза освещения

Тут все происходит в 1 шейдерной программе, т.е. в 1 шаг. Но для удобства восприятия я разобью на несколько шагов.


Диффузное(матовое) освещение.

Из направления источника света и нормали облаков, получаем базовое освещение.

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Просвечивание.

Около краев облаков (там где высокая прозрачность) добавляем просвечивание если солнце спряталось за облаком.

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Шум нормалей (на самом деле это происходит ПЕРЕД диффузным освещением, но иначе ничего не будет понятно)

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Шум displacement (отображаем на экране не текущий пиксель, а случайный из небольшого радиуса вокруг)

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Совмещаем с остальным миром


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

Пятничное мое: рендеринг облаков на мобильных. Unity, Asset store, Облака, Рендер, Гифка, Видео, Длиннопост

Конечный результат:

P.S. Так как это не технический ресурс, я не стал углубляться в тонкости реализации. Более подробную статью я опубликую на хабре:


https://habrahabr.ru/users/marsermd/posts/

Показать полностью 12 1

Рендеринг трехмерных облаков на мобильных (пятничный пост)

Я почти доделал плагин для рендеринга облаков на телефонах.

Разработка началась 3 года назад, но тогда не хватило знаний и навыков чтобы довести дело до конца.


Вот как это выглядело тогда:

С тех пор я несколько раз возвращался, но упирался в ограничения своих знаний и откладывал проект.


Сейчас же все близится к завершению. Я добавил неровности в облака, и они теперь выглядят так:

Почему я написал этот пост ещё до релиза? Потому что сегодня я написал генератор шума (который используется для создания турбулентности) и получил очень классные картинки, которыми и захотел поделиться:)

Рендеринг трехмерных облаков на мобильных (пятничный пост) Unity, Облака, Unity3D, Рендер, Мобильные игры, Видео

Если вас заинтересует, после релиза напишу пост про то как происходит рендеринг и почему он так быстро работает.

Показать полностью 1 1

Когда совсем не умеешь грести...

Когда совсем не умеешь грести... Огнестрельное оружие, Разрушительное ранчо, Крутость, Лодка, Гифка, Видео

То чувство, когда доделал проект, лежащий на полке 2 года.

Симуляция физики жидкости в реальном времени, запущенная на стрёмной видеокарте GT 630M

Если вы любите свои глаза, но ненавидите свой мозг, у меня есть для вас игра!

В ответ на http://pikabu.ru/story/esli_vyi_nenavidite_svoi_glaza_i_svoy...

Бизнес-маразм

Бизнес-маразм

Слишком сложно, они говорили...

Игра которая тяжело давалась мобильным игрокам, успешно играется без помощи рук.

Отличная работа, все прочитано!