Amazon представили новый физически-корректный рендер Atom для движка Lumberyard

Rinocrosserв 23:27 (11/04/21)
Amazon представили новый физически-корректный рендер Atom для движка Lumberyard

Вот уже более пяти лет компания Amazon развивает свой собственный форк CryEngine, приправленный сервисами AWS. С годами Lumberyard отошёл от истоков и теперь пришло время сменить рендер: им стал абсолютно новый физически-корректный рендер Atom. С его помощью управление графикой станет быстрее и удобнее.

Зачем это понадобилось?

Amazon представили новый физически-корректный рендер Atom для движка Lumberyard

Старая версия рендера была придумана ещё в эпоху, когда рынок делили API OpenGL и DirectX 11. Графические API – это набор правил по которым игровые движки общаются с видеокартой и другими железками в системе. Сейчас это тройка из DirectX 12 Ultimate (для Windows и Xbox), Vulkan API (для Windows, Android, Linux), а также Metal API (macOS, iOS, iPad OS).

Новые версии умеют куда лучше работать с множеством ядер центрального процессора, а не грузить одно ядро и зависать на нём. Сам рендер может идти параллельно и делиться на множество этапов, которые закладываются в конвейер.

Но "просто включить" новые API недостаточно – для реального преимущества придётся переписать рендер и дать разработчикам инструменты по управлению этим самым конвейером. Под каждую игру из коробки это настроить нельзя.

Что такое Atom Render в Amazon Lumberyard?

Amazon представили новый физически-корректный рендер Atom для движка Lumberyard

Amazon заложили ряд целей: например, качественное глобальное освещение (Global Illumination), высокая скорость работы, поддержка трассировки лучей, но при этом гибкость и удобство настройки даже для неопытных пользователей.

Основным для них стал рендер DirectX 12 Ultimate, а также его язык шейдеров HLSL. Его преобразовали в чуть более гибкий и универсальный Amazon Shading Language, или AZSL. Уже он конвертируется под все платформы и API, а также позволяет использовать ресурсы многократно в разных материалах и шейдерах.

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

Кроме того, все ресурсы правильно структурированы и могут управляться в объектно-ориентированном стиле из C++ кода игры: это включает наследование, дополнение или перезаписывание элементов (таких, как материалы) налету.

Ранее мы рассказывали про интересное обновление в Godot: