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

Красивое процедурное небо (3 стр)

Страницы: 1 2 3 4 5 Следующая »
#30
10:52, 30 июня 2021

MikeNew
> Конечно есть минус в виде постоянной облачности, но, думаю, с этим что-то можно сделать. Маски какие-нибудь понакладывать или типа того.
Можно просто умножать на некую константу, в случае FFP задействовать TextureFactor. Никаких дополнительных тормозящих масок.
MikeNew
> два слоя бесшовной текстуры с разным масштабом натянутые на что-то вроде верхней части огромной сферы
Это низкий конус, перелома в вершине не заметно потому, что от вершины во все стороны спуск с одной крутизной, при взгляде снизу масштаб текстуры не меняется.


#31
11:51, 30 июня 2021

Mikle
> Можно просто умножать на некую константу, в случае FFP задействовать
> TextureFactor. Никаких дополнительных тормозящих масок.
Ну как вариант. Хотя не получится сделать чтобы в одной части неба тучи были, а в другой нет, но это я уже губу раскатал.

#32
19:30, 30 июня 2021

А что если Навье-Стокса посчитать на грубой сетке? Может можно как то получить более или менее похожее на реальные облака перемещение воздушных масс?

#33
0:15, 1 июля 2021

MikeNew
> Что гуглить?
реализация физически корректных облаков как в игре хорайзон зиро доун :)

#34
(Правка: 4:51) 3:57, 1 июля 2021

BingoBongo
> реализация физически корректных облаков как в игре хорайзон зиро доун :)
На это во время гугления, в основном, и натыкался. Типа стильно, модно, молодежно.
Вот только оказалось что любой процедурный алгоритм слишком тяжел для моих целей. Но на будущее это очень интересная модель.

#35
13:18, 1 июля 2021

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

#36
15:55, 2 июля 2021

BingoBongo
> как вариант сделать физические корректное небо - оно не ест много
> производительности
Неба я уже три штуки нашел подходящих, с ним как раз проблем нет.

#37
(Правка: 16:43) 15:58, 2 июля 2021

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

https://www.shadertoy.com/view/NssSWN

Подскажите, можно в нем регулировать плотность облаков (чтобы отдельные редкие облака пролетали)?
Можно ли улучшит вид (пусть даже за двух-трехкратное увеличение стоимости)?

+ Показать

Update: облачность можно менять домножая  noise на 0.5-1.5
Вопрос про улучшения качества за счет цены остается актуальным.

#38
(Правка: 17:45) 17:07, 2 июля 2021

MikeNew
Я не понял, ты хочешь что бы кто нибудь написал за тебя шейдер? Ты нашел алгоритм с шейдертоя - ну так разберись и модернизируй его как тебе надо. Сам. Никто за тебя эту работу делать не будет.

#39
(Правка: 18:49) 18:47, 2 июля 2021

san
> Я не понял, ты хочешь что бы кто нибудь написал за тебя шейдер?
Ну он как бы написан уже.
Как менять простые параметры я и сам разобрался, но часть малопонятна, так как много матана, потому и спросил.
Ну впрочем и то что есть уже неплохо, внедрю себе и сделаю видео, если будет так хорошо как я думаю.

#40
19:25, 2 июля 2021

MikeNew
> много матана
если это много матана, ты попал тогда ) в шейдере аддетив смешивание 5ти текстур с шумом. тебе Майкл, по сути, тоже самое предлагал ранее.

#41
21:34, 2 июля 2021

MikeNew
>но часть малопонятна, так как много матана
Что там "малопонятного"?

Вот весь алгоритм:
    col += noiseSmooth(uv * 8.) * 0.5;
    col += noiseSmooth(uv * 16.) * 0.25;
    col += noiseSmooth(uv * 32.) * 0.125;
    col += noiseSmooth(uv * 64.) * 0.0625;

Кстати по сути то же самое что и у меня:
  f += 0.5000*Surface.Sample(Linear, 0.0 + vec2(p.x + 0.13, p.y) / 2.7).z;
  f += 0.2500*Surface.Sample(Linear, 0.3 + vec2(p.x, p.y) / 2.3).z;
  f += 0.0625*Surface.Sample(Linear, 0.2 + vec2(p.x + 0.37, p.y) / 1.1).z;
  f += 0.12500*Surface.Sample(Linear, p*0.01).y;

Только я шум из текстуры беру а в примере из шейдертоя его програмно генерируют. 
По мне так с текстутой проще и лучше - шум можно предварительно обработать. Но к алгоритму это отношения не имеет.

#42
(Правка: 13:51) 13:49, 4 июля 2021

Получилось сделать и отдельные маленькие облачка и дождевое небо, и все это примерно по стоимости как одна-единственная выборка из текстуры (замеряно на gtx1080, думаю на других картах будет примерно так же):

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#43
13:51, 4 июля 2021

san
> Что там "малопонятного"?
Для меня малопонятно все что сложнее чем 2x2 (утрирую, конечно, но тем не менее).
san
> Кстати по сути то же самое что и у меня:
Это должно быть красивее чем генерируемый шум, но я не могу позволить себе четыре выборки на пиксель для неба, к сожалению.

#44
14:11, 4 июля 2021

MikeNew
> я не могу позволить себе четыре выборки на пиксель для неба, к сожалению.
На современных картах это быстрее чем frac(sin()). Как на телефонах не знаю.

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