Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Пн Ноя 28, 2016 21:58 Заголовок сообщения: SSAO |
|
|
А кто-нибудь сравнивал производительность сабжа классическим методом (вращающееся ядро, без учета нормалей) и блюром z-буфера? _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
Ized shader killer

Зарегистрирован: 28.12.2007 Сообщения: 128
|
Добавлено: Пт Дек 02, 2016 02:28 Заголовок сообщения: |
|
|
Что ты имеешь в виду? Я тебя не совсем понял.
Если ты хочешь заблюрить z-буфер, а потом на нем прогнать SSAO, чтобы не блюрить его результат, как это сделано в оригинальном алгоритме, то так делать, скорей всего, нельзя примерно по той же причине, почему нельзя блюрить шадоумапы. Но, ты можешь сдаунсэмплить z-buffer, посчитать SSAO для него и уже потом заблюрить результат и наложить на финальную сцену.
Если честно, я сам про такую идею с заблюриванием z-буфера для SSAO вообще в первый раз слышу, и как по мне – сделать то, что делали пацаны из Crytek в 2007, будет самым верным решением на первых порах. Еще правильней будет, на мой взгляд, копать в сторону HBAO.
Да и вообще прочесть вот эту презентаху надо для начала: Stable SSAO in Battlefield 3 with Selective Temporal Filtering
В общем, объясни лучше, что-то я не догнал пока что, что именно ты хочешь, а то я, скорей всего, абсолютно все неправильно понял. |
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Пт Дек 02, 2016 10:47 Заголовок сообщения: |
|
|
думаю кодом будет понятнее. смещения, понятно, загоню в таблицу потом, а пока вот так...
вообще сам метод есть в пэйперах, но в несколько другом виде + у меня имплементация вышла своеобразная.
https://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S11/final_projects/chamberlin_sullivan.pdf
http://graphics.uni-konstanz.de/publikationen/2006/unsharp_masking/Luft%20et%20al.%20--%20Image%20Enhancement%20by%20Unsharp%20Masking%20the%20Depth%20Buffer.pdf
скрин
кусок фрагментного шейдера:
Код: | dd=tex2D(view,u);
float iz=dd.w+.5;
float dl=0;
float w,a,s;
float rrr=1/iz*.001*ssAmp;
float lod=2;
int cnt=8-clamp(iz*.2,0,7);
float urr=sin(u.x*u.y/(u.x+u.y))*5555555;
float astp=1/float(cnt)*6.28*17;
float ac=0;
float h;
h=ho*v.y*.01;
for (int j=0;j<cnt;j++)
{
float ar=clamp(rrr*j,0,.5);
float an=ac+urr;
ac+=astp;
a=tex2Dlod(view,float4(u+ar*float2(sin(an),cos(an)+h),0,lod)).w+.5;
w=smoothstep(0.0, 1.0, .12 / abs(a - iz));
dl+=a*w/(1+ar*.1);s+=w;
}
dl/=s;
return clamp(pow(dl/iz,ssLvl),0,1); |
_________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Вс Янв 01, 2017 11:27 Заголовок сообщения: |
|
|
ну как-то хз. я выписал не так давно через постпроцесс, картинка похожа на то что у беро.
надо через шмапы сделать, там прям красиво можно намутить, жрать правда будет поболе... _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|