Перейти к содержанию

GTAO для аномалии

Авторизация  
AgainstAllAutority

776 просмотров

Небольшое сравнение:

spacer.png

без какого-либо затенения

 

spacer.png

И с новой моделью GTAO (ground truth ambient occlusion)

Авторизация  


17 Комментариев


Рекомендуемые комментарии

Ну как же есть разница это что типа затенения посмотрите на темные и светлые поверхности. Особенно в здании заметно.

Поделиться этим комментарием


Ссылка на комментарий

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


Дополнено 3 минуты спустя
57 минут назад, Commandor сказал:

Неплохо. Текстуры лучше смотрятся, края более чёткими кажутся.

к сожалению в будущем пассе на оптимизацию эффект на текстурах будет немного потерян, хотя код уже сейчас очень бодро работает на моей 1060 (100-110 фпс, т.е порядка 8-9мс на кадр, при моем рассчетном лимите в 13мс ~ 75 фпс в 1080р на 1060)

Изменено пользователем AgainstAllAutority

Поделиться этим комментарием


Ссылка на комментарий

Очень приятная наработка и разница видна невооруженным взглядом.

@AgainstAllAutority,

есть материал свободном доступе или стоит ждать в Аномали?

 

Поделиться этим комментарием


Ссылка на комментарий

@ed_rez в свободном доступе есть "исходный мета-код"
тут оригинальная статья с кодом

ну и само собой в аналье это появится (просто нужна правка движка, т.е в виде мода это не отправить, только если вместе с измененным exe) я наработки скидываю

Поделиться этим комментарием


Ссылка на комментарий

@AgainstAllAutority,

если не затруднит, поделись ссылкой на исходники. С правкой движка понятно. Мне интересно движковые и шейдерные решения в виде, как ты пишешь, "мета-кода".

Поделиться этим комментарием


Ссылка на комментарий

Такое чувство, будто либо что-то сделали с погодой, либо просто поставили статику. Даже в ЗП, внутри зданий не было так светло.

Поделиться этим комментарием


Ссылка на комментарий
9 минут назад, AziatkaVictor сказал:

Такое чувство, будто либо что-то сделали с погодой, либо просто поставили статику. Даже в ЗП, внутри зданий не было так светло.

это ж не ванильный движок, а аномалия, кучу раз переделанная до меня другими людьми. К сожалению не могу отвечать за эти моменты. Другого движка для экспериментов у меня нет)


Дополнено 1 минуту спустя
16 минут назад, ed_rez сказал:

@AgainstAllAutority,

если не затруднит, поделись ссылкой на исходники. С правкой движка понятно. Мне интересно движковые и шейдерные решения в виде, как ты пишешь, "мета-кода".

@ed_rezссылка -> "тут оригинальная статья"

движковые: по сути только дополнительные RT перед стадией combine_1, как ориентир можно использовать фазы для HBAO/HDAO от GSC.
генерируем сам эффект в 1 пассе, потом 2 пасса блюра. Единственное - блюр должен отсекать семплы, которые больше некого "допуска". Допуск зависит от глубины цели.
В теории еще много фишек которые можно применить, я пока их не реализовал сам.

Изменено пользователем AgainstAllAutority

Поделиться этим комментарием


Ссылка на комментарий
1 час назад, AgainstAllAutority сказал:

К сожалению не могу отвечать за эти моменты. Другого движка для экспериментов у меня нет)

Ну как сказать. Есть куча правленых движков ЗП с исходниками. А так прикольно.

Поделиться этим комментарием


Ссылка на комментарий

Давно в Reshade это есть. Зачем изобретать велосипед не понимаю :classic_dry:

Поделиться этим комментарием


Ссылка на комментарий

@kay решейд - не имеет представления, что именно происходит в игре. Это только пост-фильтр с доступом к буфферу глубины. Из-за этого его возможности сильно ограничены. Мое решение лучше, быстрее и интегрируется с освещением, которое генерирует сам движок, а не просто рисуется сверху после.

собственно с решейда я вначале и начинал, но он не мог предоставить нужный мне результат

Изменено пользователем AgainstAllAutority

Поделиться этим комментарием


Ссылка на комментарий

Ну хоть кто-то додумался, что пора бы обновить затенение. Тогда и я поделюсь неким скромным результатом.

GTAO (V = N) + Multibounce :

ss_admin_10-23-21_04-09-44_(l01_escape).thumb.jpg.1a5dd0feeed7d2e0325dfc4312d76e9f.jpg

ss_admin_10-22-21_23-32-26_(l08_yantar).thumb.jpg.a075e23262f5ca59b3d04275779378d8.jpg

Реузльтаты все равно ещё не очень, да и вместо вектора взгляда использую вектор нормали пока-что.

Поделиться этим комментарием


Ссылка на комментарий

@fiercefreak результат очень даже, но видно - что не везде срабатывает

какую эвристику для проверки "толщины" используешь? дельта расстояний или что-то более умное? я просто как в статье описано не смог реализовать и ограничился использованием дельты между целью и кандидатом для оклюзии.
Bent Normals?
Bounce с использованием "матрицы перехода цвета" ? просто похоже будто просто "диффуз текстура" проглядывает через АО (ну дает цвета)

у меня тоже не все идеально

spacer.png

а вот так миксуется с буффером света
spacer.png

Изменено пользователем AgainstAllAutority

Поделиться этим комментарием


Ссылка на комментарий

@AgainstAllAutority ну на деле я не программист, поэтому использую уже готовый шейдер с гитхаба, но уже сам реализовал GTSO по докам активижона и свои некоторые исправления в GTAO

насчет эвристики, тут дело не в толщине, а в методе 'отсечения'. в прошлом методе там использовалась линейная функция 'отсечения', после проводилась проверка с предыдущим значением.

я вот таким образом реализовал 'отсечение':
h.x = (h.x > H.x) ? H.x : lerp(H.x, h.x, step(Heuristic, -dPds.z));
h.y = (h.y > H.y) ? H.y : lerp(H.y, h.y, step(Heuristic, -dPdt.z));

насчет бэнт нормалей, я тут уже с другого источника (не помню какого) взял вот такую реализацию:
 float Hangle = 0.5f * (h.x + h.y);
 bentNormal += viewDir * cos(Hangle) - tangent * sin(Hangle);

и уже после цикла:
bentNormal = normalize(normalize(bentNormal) - viewDir * 0.5f);
но если V = N, то смысла от этих бэнт нормалей нет

насчет Multibounce - тут использую аппроксимацию за счет коэффициентов кубического полинома, который написан в презентации активижона на стр 78

p.s. я бы покидал парочку скринов, но размер не позволяет, а сжимать и мусорить не очень хочется

Изменено пользователем fiercefreak

Поделиться этим комментарием


Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти