Mipmapping — удобный способ добавить в трёхмерную сцену гораздо больше деталей, не перегружая графическое «железо» тем, чего пользователь всё равно не увидит. Эту технику детализации по расстоянию (level of detail, LOD) несколько лет назад показал на консоли Nintendo 64 Джеймс Ламберт (James Lambert), а теперь демонстрацию мегатекстур на микроконтроллере ESP32-S3 представил Майкл Биггинс (Michael Biggins), известный как PhonicUK, — на базе собственного движка Jet.

Иллюстрация к демонстрации мегатекстур в движке Jet на ESP32-S3

Суть подхода проста: для каждой текстуры заранее готовится набор уменьшенных копий, и движок выбирает ту, что подходит под расстояние до объекта. Вблизи используется крупная версия, вдали — мелкая. Так на удалённых поверхностях не тратятся ресурсы на пиксели, которых игрок всё равно не различит, а изображение получается чище, без мерцания мелких деталей.

реклама кормит Уточку 🦆

Однако у детализации по расстоянию есть и обратная сторона. Она действительно заметно ускоряет отрисовку, но требует заметно больших размеров текстур: например, N64-демо Джеймса занимает 40 МБ из 64 МБ картриджа. Иными словами, выигрыш в скорости оплачивается памятью.

У ESP32-S3 такого простора нет: в распоряжении 16 МБ PSRAM, а SD-карты и других расширений памяти нет. Поэтому текстуры пришлось сжать сильнее — перейти на 8-битную индексацию. Вместо полного цвета каждого пикселя хранится номер цвета в палитре, и на пиксель уходит всего один байт.

реклама кормит Уточку 🦆

В итоге все текстуры уместились в 5,01 МБ — примерно в восемь раз меньше, чем 40 МБ в N64-версии. Платформы разные, поэтому сравнение приблизительное, но масштаб экономии хорошо виден.

Видеодемонстрация опубликована в соответствующей ветке на Reddit: на ней камера перемещается по сцене. Пусть это и не столь эффектно, как ранее сделанный Майклом порт Wipeout, ролик всё равно наглядно показывает, как техника работает на очень скромном железе.

реклама кормит Уточку 🦆

Главный вывод демо в том, что даже без полноценного 3D-ускорителя ESP32-S3 уже превращается в весьма способную игровую платформу, которая может потягаться с некоторыми консолями 1990-х годов.