На официальном форуме опубликована заметка, в которой разработчики рассказали о реализации функции
от AMD в дополнении Shadowlands. Благодаря ей, использующие современные видеокарты игроки смогут заметить серьезное повышение производительности World of Warcraft наряду с небольшим повышением качества отображения теней и общей картинки игры.
Повышение качества графики в WoWМы благодарны AMD за то, что благодаря им смогли добавить в World of Warcraft: Shadowlands поддержку технологи комбинированной адаптивной вычислительной окклюзии окружающей среды (CACAO), новейшую версию экранной окклюзии окружающей среды. В World of Warcraft этот эффект используется для повышения качества графики. Далее вы можете побольше узнать о том, что такое CACAO, почему его поддержка была добавлена в World of Warcraft: Shadowlands и что благодаря этому получилось достичь.
Что такое AO?Фоновое затенение (AO) – это идея в сфере графики, согласно которой общая освещенность, влияющая на отображение поверхностей окружения, уменьшается из-за наличия иных близлежащих поверхностей. Эти иные поверхности блокируют или загораживают часть ненаправленного рассеянного света в сцене, который падает на данную поверхность.
Представьте машину на шоссе солнечным утром. Автомобиль будет иметь и тень, резкие очертания силуэта автомобиля, отбрасываемые в обратную направлению солнца сторону, и размытую затененную область дороги под ним, расположенную более-менее по центру автомобиля. В очень пасмурный день от автомобиля может быть не так много тени, но затененная область под ним все равно будет заметна.
AO имитирует эффект затенения под автомобилем, не являющийся его прямой тенью. Субъективно, AO создает незаметные виртуальные подсказки, демонстрирующие расположение поверхностей в сцене, в результате чего изображение выглядит менее плоским.
Переход к CACAOFidelityFX CACAO – это метод AO, аналогичный тому, который используется в Battle for Azeroth, но оптимизированный и реализованный программно. Ожидается, что перейдя на эту новую реализацию, игроки смогут сохранить прежний вид и сократить потери в производительности. Также CACAO вводит новый режим работы с сокращенным разрешением, что заметно меньше влияет на производительность, но в то же время минимально ухудшает визуальное качество. Реализованный полностью программно, также CACAO может быть выгружен вычислительную область, работая параллельно с графикой, хотя в Shadowlands это еще не было реализовано.
Проведенная работаВнедрение FidelityFX CACAO в World of Warcraft прошло гладко. Общая реализация была настолько схожа с предыдущей AO, что ее удалось легко заменить, получив одинаковые входные и выходные данные. Исходный код CACAO включает готовую поддержку API DirectX 12 и Vulkan. Поскольку WoW разрабатывается под DirectX 11 и 12 для Windows и Metal API для MacOS, то для перехода потребовались очень небольшие усилия, чтобы этот метод заработал с абстрактным слоем API для таких задач как управление ресурсами и построение списка команд.
К счастью, поскольку программы шейдеров WoW (в основном) написаны на HLSL, то потребовалось совсем немного изменений, чтобы реализовать версию шейдеров CACAO для DirectX 12, где и содержится значительная часть логики метода.
РезультатыВ полноэкранном режиме FidelityFX CACAO показывает результаты, которые визуально неотличимы от нашей предыдущей реализации и дают небольшое повышение производительности на большинстве карт, особенно использующих более современные архитектуры с более высокими вычислительными возможностями. Однако в большинстве систем мы решили использовать режим пониженного разрешения, который дает практически настолько же хорошие результаты с заметным повышением производительности на всех совместимых устройствах.
[Источник] изменение качества графики в Shadowlands с использованием FidelityFX на современных видеокартах AMD: