Godot-Dev / Betsy GPU

Опубликовано August@Karro - пт, 11/27/2020 - 10:14
Godot Engine (фр. gó-doh) — открытый кроссплатформенный 2D и 3D игровой движок под лицензией MIT, который разрабатывается сообществом Godot Engine Community. 

Работа была выполнена по заказу Godot Engine в рамках проекта Software Freedom Conservancy, чтобы решить основную проблему: импорт текстур происходит мучительно медленно и занимает много времени. Некоторые алгоритмы сжатия, такие как BC1-5, достаточно просты, и уже существуют быстрые алгоритмы сжатия высокого качества.

Однако такие алгоритмы, как BC6, ETC1, ETC2 и EAC в настоящее время занимают большую часть расчетов, и поэтому им было уделено значительное внимание при разработке нового компрессора текстур. Тем не менее, новый компрессор текстур Betsy GPU реализовал(а) версии вычислительного шейдера для алгоритмов BC1,3,4,5,6, ETC1,2 и EAC.

Betsy GPU работает как стандартный инструмент командной строки, это означает, что он может быть использован как любой другой инструмент exe за пределами Godot. Более того, Betsy разрабатывалась с учетом интеграции с Godot, поэтому код был изолирован и абстрагирован от API, написанных на GLSL шейдерах, так как Godot использует Vulkan.

Godot получает дальнейшие улучшения производительности стандартным инструментом CLI, потому что движку не нужно инициализировать графический API каждый раз, когда он вызывается для сжатия текстуры; и Godot может загрузить текстуру всего один раз, а затем кодировать в несколько форматов (например, сжимать в BC1 и ETC1, или EAC и BC4 одновременно); а не перезагружать текстуру снова для каждого формата, в который нам нужно сжимать.

Теоретически, инструмент CLI может кодировать много текстур в одном вызове (например, кодировать A.png в A.etc1.ktx A.etc2.ktx A.bc1.ktx и B.etc1.ktx B.etc2.ktx B.bc1.ktx), но разработчики беспокоились, что это может усложнить код и усложнить его интеграцию. Кроме того, сложно написать общий интерфейс инструмента, который бы использовал преимущества такого синтаксиса командной строки.

Статью описывает Матиас Н. Голдберг (Matias N. Goldberg).


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

 

Последние материалы