Войти
ПрограммированиеФорумОбщее

круги на воде

#0
17:56, 15 дек. 2016

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

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


#1
21:53, 15 дек. 2016

купить шейдеры ?

#2
1:02, 16 дек. 2016

Mira
> но чтоб при физ воздействии на ней хотя-бы появлялись круги..
Простейший шейдер с бампом достаточно же, у которого зацикленная текстура (круг проходит сквозь границу и выходит с другой стороны)

#3
2:43, 16 дек. 2016

вот седня шаманил чето типа того получилось . бумпмап который в шейдере не используется только)
еенгш | круги на воде

#4
9:42, 16 дек. 2016

Как можно сделать шейдером чтоб чем глубже тем темнее?

#5
10:26, 16 дек. 2016

Mira
> Как можно сделать шейдером чтоб чем глубже тем темнее?
Странное описание. Что значит глубже? Что за эффект пытаешься получить?

#6
11:05, 16 дек. 2016

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

#7
11:32, 16 дек. 2016

Mira
> Как понимаю просто средствами шейдера не сделать, расстояние до дна же не
> определить без дополнительных проходов и без извращений.
Как это не определить? Определить конечно. Вода рисуется последним проходом, в глубину её писать не обязательно. У тебя есть текстура глубины с предыдущего прохода, вот аттачишь её к фрагментному шейдеру, и определяешь глубину.

#8
13:09, 16 дек. 2016

MrShoor
Окай спасибо поищу в этом направлении.

#9
19:46, 17 дек. 2016

народ подскажите как исправить такую фигню с Rim освещением на плоскости?
при определенном направлении взгляда по середине темная полоса, а нужно чтоб плоскость равномерно освещалась в зависимости от угла
расщет стандартный

half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal));
35346 | круги на воде

#10
10:58, 18 дек. 2016

посмотрел как сделано в шейдере воды, это ж ппц затейливо.
сначала берут dot (normalize(IN.viewDir), o.Normal)
потом читают цвет из специальной текстуры, потом берут яркость еще из одной.  но при этом артефакта нет.

в классике же тупо юзают dot... как они это терпят и как борются - ни понятно

#11
6:22, 19 дек. 2016

Mira
То, что ты привел, dot (normalize(IN.viewDir), o.Normal) - это косинус угла, по которому определяют количество отраженного света от поверхности, и света, прошедшего внутрь. Отраженный свет проще всего взять с кубмапы. Свет прошедший внутрь - это тот самый свет, который тебе нужно замутнять.
Ну и полосы там быть не должно. Должно быть черное пятно под носом. Давай весь код шейдеров чтоль.

#12
8:08, 19 дек. 2016

MrShoor
Я отраженный и делал.  Вечером покажу шейдера тогда

ПрограммированиеФорумОбщее

Тема в архиве.