ПрограммированиеФорумГрафика

Физика Айвазовского (2 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#15
10:06, 24 дек 2018

Suslik
> спекуляра и френеля — как бы не очень просто
Без спекуляра и френеля как бы вообще нереально найти. И я даже боюсь представить, как выглядел бы океан без спекуляра и френеля. Наверное это было бы как излучение Вавилова-Черенкова в реакторе (только инвертированное).

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

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

Можно кстати просто влоб поинтегрировать множество точек (тупо замонтекарлить этот скаттеринг), и посмотреть на его вклад. И пусть это будет даже оффлайн рендер, суть чисто глянуть вклад. Если вклад будет минимальным, то может и нет смысла заморачиваться с аппроксимацией?

#16
10:33, 24 дек 2018

MrShoor
> Можно кстати просто влоб поинтегрировать множество точек (тупо замонтекарлить
> этот скаттеринг), и посмотреть на его вклад. И пусть это будет даже оффлайн
> рендер, суть чисто глянуть вклад. Если вклад будет минимальным, то может и нет
> смысла заморачиваться с аппроксимацией?
вот именно это я сейчас и сделал. по моей теории луч из камеры, который идёт ближе к поверхности (который, кстати, обычно меньше видно из-за френеля), должен "собирать" отражённые от солнца лучи с меньшей глубины, то есть которые должны быть ярче.

таким образом, я считаю, что на участках с гребнями лучи входят под воду почти перпендикулярно поверхности(из-за этого они не отражаются френелем), а идут под поверхностью почти параллельно ей, поэтому они получаются ярче. я замонтекарлил этот процесс и.. чёрт знает что получилось. у меня не получилось воспроизвести этот процесс даже в оффлайн. то ли баг в коде, то ли в моей гига-теории.

#17
10:51, 24 дек 2018

Suslik
> спекляр, отражения от поверхности — это отдельный разговор. тред не об этом.
Так именно мелкие спекулярные блики, невидимые по отдельности, дают часть того эффекта, о котором речь.

#18
11:39, 24 дек 2018

Suslik
> по моей теории луч из камеры, который идёт ближе к поверхности (который,
> кстати, обычно меньше видно из-за френеля), должен "собирать" отражённые от
> солнца лучи с меньшей глубины, то есть которые должны быть ярче.
Вроде верно. Рассмотрим плоскую воду. Положим у нас directional свет, который светит вертикально вниз.
Тогда количество света, дошедшего до точки на глубине z будет e^(-a*z), где a - коэффециент поглощения.
Мы смотрим вдоль view вектора, и количество света, поступающего из каждой точки будет e^(-a*t), где t - точка на луче. Видно, что z и t связаны как: z=dot(view, n)*t.
Следовательно количество света, поступающего к нам в глаз из заданного направления будет такой вот интегальчик (форум линки побил, так что копипасть):
https://www.wolframalpha.com/input/?i=int(e%5E(-a*t*(b%2B1)),+dt)
где b - это собственно константа dot(view, n)

Однако если попросить нарисовать вольфрам график этой функии, задав переменными наш dot и коэффициент "мутности" воды, то видим такую картину:
https://www.wolframalpha.com/input/?i=plot+y+%3D+-e%5E(-a*(b%2B1)*2)+%2F+(a*(b%2B1)),+a+from+0+to+1,+b+from+0+to+1
И вот на этом графике уже хорошо видно, что от dot (b параметр на графике) зависимость минимальная.

Так что твоя теория верная. Эффект просто слабый очень.

#19
12:00, 24 дек 2018

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

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

#20
12:14, 24 дек 2018

Suslik
> гмм... ещё есть такой важный эффект: в реальности вода бывает как в бассейне(в
> ней, можно считать, полностью поглощается только очень узкая часть спектра):
Хм... не совсем понял какой эффект в бассеине. На фото хорошо видна каустика, но каустика - это же не поглощение света. Где-то убыло, где-то прибыло. А еще немного видна дисперсия света. Но мне сложно увидеть то поглощение, о котором ты говоришь.

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

> при которых можно получить похожий эффект. похожий на айвазовского, а не на мои потуги.
Я вот не наблюдал эффект, как на картинах у Айвазовского в ракурсах с водой как у тебя. Может попробовать рефы поискать? Я когда смотрю на картины Айвазовского - у меня стойкое ощущение, что: 1. Источник света находится низко. 2. Источник света освещает волну с другой стороны и просвечивает её на сквозь. Если взять этот же эффект, и поместить на небольшие волны с ракурсом как у тебя - смотрется это будет весьма странно.

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

#21
13:35, 24 дек 2018

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

#22
13:54, 24 дек 2018

Suslik
> вода выглядит синей, но не мутной
А она не подкрашена? Это практикуется.

#23
13:58, 24 дек 2018

А она не подкрашена? Это практикуется.

Синева из-за плитки на дне бассейна и небо может давать синеву.

#24
14:00, 24 дек 2018

ronniko
> Синева из-за плитки на дне бассейна и небо может давать синеву.
Оба варианта не дадут зависимость от глубины.

#25
14:02, 24 дек 2018

Что насчёт воды из Unigine?

+ Images
+ Gif
+ Code
#26
14:07, 24 дек 2018

Mikle
> А она не подкрашена?
wiki

#27
14:13, 24 дек 2018

Так вот почему океан часто зеленоват, а не синий (из википедии):

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

#28
14:13, 24 дек 2018

ENAleksey какой у вас маленький шейдер :))) От такого шейдера наверное и вода мокрая на ощупь.
Не тормозит ?

Про хлорофилла знаю.
Вот потому на втором рисунке на волне зеленый цвет, а вода с зади синего цвета.
https://gamedev.ru/code/forum/?id=241028&page=2#m15

#29
14:22, 24 дек 2018

Suslik
Немного некорректная терминология, поэтому решил вмешаться. По сути нет никакого duffuse а есть SSS. duffuse как раз моделирует процесс при котором свет, проникший в объект, после некоторого количества внутренних переотражений выходит наружу. Все популярные duffuse-BSDF предполагают, что свет выходит примерно в области падения (в пределах пикселя). Здесь https://schuttejoe.github.io/post/disneybsdf/ вроде бы производится попытка расширить BSDF, насколько это хорошо получилось, не скажу, так как не вчитывался.

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика

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