Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » Программирование графики и GPU » SSAO (Screen-Space Ambient Occlusion) не работает


SSAO (Screen-Space Ambient Occlusion) не работает

Сообщений 1 страница 6 из 6

1

Использую алгоритм SSAO (Screen-Space Ambient Occlusion) описанный на данном сайте. Суть его заключается как я понял в распределение освещения точек конкретного объекта. Возьмем например голову героя, по идее алгоритм должен оттенять глаза, поскольку есть надбровные дуги, выделять скулы и пр. Но у меня получается только контур головы. Может я просто не понял суть алгоритма, хотя если использовать буффер глубины и радиус сферы для конкретной точки побольше, то мы должны получать что то вроде затенения. Помогите разобраться, а то ....

0

2

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

0

3

Попробовал и модифицировал простейший код из примера следующим образом

        if ( zSample - z > 1500.1 ) //если разница в глубине большая то пропускаем
            continue;
           
        float   dz = max ( zSample - z, 0.0 ) * 0.05; //определяем коэффициент затенения
       
        att += 1.0 / ( 1.0 + dz*dz ); //величина затенения
    }
   
    att = clamp ( (att / 8.0 + attBias) * attScale, 0.0, 1.0 );
    gl_FragColor = vec4 ( att );

Тоесть как видите порог по глубине значителен, но результат опять тот же, пробовал изменять коэфициент затенения, нов результате контур просто проподал или ничего не изменяться ( увеличивается контрастность но опять же на границе объекта)

увеличить

0

4

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

0

5

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

Какой отрезок имеете ввиду я не понял. Может кто выложит пример для RenderMonkey там есть моделька NinjaHead.3ds хотелось бы увидеть что может алгоритм для данного случая, у меня по крайней мере получается тока контур как и с зайцем. Недавно скачал пример шейдера одного автора описывающего спецэффекты в игре Crysis кажется. Так при рендере тоже только контур танка, а как же затенение корпуса под стволом пушки, да в самой модели  много переходных мест, где должны появиться темные участки. Возникает подозрение: или в примере неправильно что то реализовано, или алгоритм на большее и не способен, хотя по идее он должен отрабатывать такие моменты.

увеличить

0

6

Если кого интересует SSAO рекомендую рисерч товарища Vortex'а тако игрушки как Crysis
http://users.livejournal.com/__vortex__/3201.html

0


Вы здесь » Компьютерная графика » Программирование графики и GPU » SSAO (Screen-Space Ambient Occlusion) не работает


создать свой форум бесплатно