В среде компьютерных энтузиастов шутер Crysis 3 долгое время считался эталоном графической требовательности, особенно при активации мультисэмплинга или MSAA. Распространено мнение, что крайне низкая производительность при включении этого метода сглаживания связана с несовместимостью MSAA и технологий отложенного рендеринга. Однако недавний технический анализ от канала Threat Interactive ставит эту теорию под сомнение, указывая на то, что проблемы кроются в ошибках оптимизации и наследии консолей седьмого поколения.
Авторы исследования сравнили работу сглаживания в Crysis 3 и VR-проекте Half-Life: Alyx. В игре от Valve используется схожий метод MSAA, но он не вызывает столь катастрофического падения кадровой частоты и обеспечивает более чистое изображение. Это наблюдение позволило сделать вывод, что высокая стоимость сглаживания в проекте Crytek вызвана не самим алгоритмом, а проблемами в конвейере рендеринга.
Одной из главных причин падения производительности названа логика предварительного прохода глубины, так называемого Depth Prepass. В идеально оптимизированном движке этот этап должен отсекать невидимые пиксели, чтобы видеокарта не тратила ресурсы на их обработку. В Crysis 3 этот механизм работает некорректно с объектами, использующими альфа-тест, например с листвой и травой. При включении MSAA нагрузка на этот этап удваивается, заставляя видеокарту обрабатывать огромные массивы данных, которые должны были быть отсечены.
Визуальные артефакты, такие как фиолетовые или зеленые ореолы вокруг объектов, объясняются использованием сжатого G-буфера. Разработчики были вынуждены экономить пропускную способность памяти для работы игры на PlayStation 3 и Xbox 360. В результате информация о цвете хранилась в 16-битном формате вместо стандартного 24-битного, что при наложении сглаживания приводило к искажению цветов на границах объектов.
Еще одной критической ошибкой названа работа трафаретного маскирования. Технология должна определять края геометрии, к которым необходимо применить сглаживание. В Crysis 3 этот алгоритм часто дает сбои и попросту пропускает множество неровных краев. Именно поэтому даже при максимальных настройках 8x MSAA игроки все равно видят лесенки на наклонных поверхностях и объектах сложной формы. Особое внимание в разборе уделили сцене с дождем, где из-за ошибки в коде маска сбивается, и освещение для сглаженных сэмплов рассчитывается некорректно.
Исследователи отмечают, что использование 8x сглаживания при разрешении 1080p и выше является избыточным для современных стандартов, однако даже более скромные режимы 2x и 4x в игре реализованы неэффективно. Анализ подчеркивает, что современные версии движка CryEngine практически отказались от поддержки MSAA в пользу временных методов сглаживания TAA, которые хоть и работают быстрее, но часто приводят к размытию изображения в движении.
комментариев нет