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

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

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

4 719 просмотров

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

spacer.png

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

 

spacer.png

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

  • Лайк 2
  • Мастер! 1
  • Хабар 1
  • Спасибо 1
Авторизация  


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


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

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

  • Лайк 1

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


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

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


Дополнено 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
  • Жму руку 1

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


Ссылка на комментарий
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

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

  • Мастер! 1

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


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

@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
  • Мастер! 1

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


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

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

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

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

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

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

Войти

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

Войти
  • Блоги других авторов

  • Топ блоггеров

  • Комментарии блога

    • Может еще и моды попросишь делать без самодурства, честно оценивая свои силы и сроки разработки?   Дополнено 1 минуту спустя Про эти не слышал. Но наверно упущение GSC в рамках C2 не придумали такой мути.
    • Мне надо, чтобы люди перестали быть лицемерными существами. Тогда никто ничего подобное не будем маскировать и скармливать. Но я слишком много хочу, очевидно. А если ты одно из подобных существ – это твой выбор. Я ничего запретить тебе не могу. Хочешь маскируй, ври, скармливай, выкладывай ИИ-мусор, что хочешь делай. Бессмысленно что-то доказывать кому-то. Только, в таком случае, я тоже буду делать, что пожелаю (не уподобляясь лицемерам, конечно) и будут высмеивать подобное хрючево и его «создате
    • К сталкеру больше подойдет вселенная К.О.Н.Т.У.Ра или XCVmind с их НИИ-95, чем эти корридоры
    • Пусть делают, тебе что жалко? Или тебе надо, чтобы в замаскированном виде скармливали тоже самое?  
    • Ну давай я тогда свои обзоры на моды буду через «свой авторский запрос у ИИ» делать? Вулф вон пусть стримы через ИИ вести будет, модеры за сайтом через ИИ смотреть, новости через ИИ, все блоги через ИИ, в чате и на форуме пусть только ИИ сидят и общаются друг с другом. А если у кого-то своё мнение появится или точка зрения, то лучше пусть через ИИ сначала его проведёт, а потом Ctrl+C и Ctrl+V нажмёт. Зачем мы тогда здесь вообще собрались все? Кому интересно, он и сам через ИИ спросит что ем

Важная информация

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