Вот уже более пяти лет компания Amazon развивает свой собственный форк CryEngine, приправленный сервисами AWS. С годами Lumberyard отошёл от истоков и теперь пришло время сменить рендер: им стал абсолютно новый физически-корректный рендер Atom. С его помощью управление графикой станет быстрее и удобнее.
Зачем это понадобилось?
Старая версия рендера была придумана ещё в эпоху, когда рынок делили 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 заложили ряд целей: например, качественное глобальное освещение (Global Illumination), высокая скорость работы, поддержка трассировки лучей, но при этом гибкость и удобство настройки даже для неопытных пользователей.
Основным для них стал рендер DirectX 12 Ultimate, а также его язык шейдеров HLSL. Его преобразовали в чуть более гибкий и универсальный Amazon Shading Language, или AZSL. Уже он конвертируется под все платформы и API, а также позволяет использовать ресурсы многократно в разных материалах и шейдерах.
Для управления конвейером назначили свой синтаксис JSON. Там буквально описываются проходы также, как структура сцены в других движках или веб-страница при разработке в любом известном вам фреймворке.
Кроме того, все ресурсы правильно структурированы и могут управляться в объектно-ориентированном стиле из C++ кода игры: это включает наследование, дополнение или перезаписывание элементов (таких, как материалы) налету.
Ранее мы рассказывали про интересное обновление в Godot:
- Войдите, чтобы оставлять комментарии
- 608 просмотров