Разработчик создал демо с 3D-шейдером в реальном времени для Game Boy Color

Талантливый разработчик Дэнни Спенсер сумел заставить портативную консоль Game Boy Color (GBC) запускать интерактивную, управляемую пользователем демонстрацию 3D-шейдера в реальном времени. Он поделился видео, разместил подробный пост в блоге, выложил для скачивания ROM-файлы, исходный код и даже встроил демо в онлайн-эмулятор GBC, чтобы любой желающий мог покрутить чайник с затенением по Ламберту.

Всегда завораживает наблюдать, как разработчики выжимают последние капли производительности из доступного железа. Поэтому увидеть эту интерактивную демонстрацию вращающегося чайника для GBC невероятно круто. Более того, Спенсер раскрывает все технические детали, стоящие за этим достижением.

Запустить такой шейдер в реальном времени на GBC не было бы большой проблемой, если бы у портативной консоли был мощный процессор. Однако вторая портативка от Nintendo была далека от мощи. Она сохранила SoC Sharp SM83, как в оригинальном Game Boy, но разогнала её до «двухскоростного режима» с частотой чуть более 8 МГц. Этот режим переключения между одинарной и двойной скоростью был отличным решением для обратной совместимости.

Хотя дополнительная скорость полезна для этой 3D-демки, вычислительных мощностей GBC всё равно катастрофически не хватает для запуска интерактивного шейдера. Например, Спенсер посвятил значительную часть своего блога объяснению того, как он ловко обошел отсутствие инструкции умножения в SM83, используя логарифмы и таблицы поиска. Чтобы снизить вычислительную нагрузку, разработчик преобразовал векторы в сферические координаты. Затем шейдер Ламберта был реализован с использованием сферического скалярного произведения. Более подробная информация о программировании, математике и рендеринге доступна в посте по ссылке.

Спенсер выложил код gbshader и сопутствующие ресурсы на GitHub. Там же можно найти ссылки для скачивания ROM-файлов этой интерактивной 3D-демонстрации.

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

ИИ: Это потрясающий пример того, как глубокое понимание аппаратного обеспечения и математики позволяет творить чудеса даже на оборудовании, которое многие считают устаревшим. В 2026 году, когда мы окружены терафлопсами и нейросетями, такие проекты напоминают об основах компьютерной графики и чистой магии низкоуровневого программирования.

Подписаться на обновления Новости / Технологии
Зарегистрируйтесь на сайте, чтобы отключить рекламу

ℹ️ Помощь от ИИ

В статье есть ошибки или у вас есть вопрос? Попробуйте спросить нашего ИИ-помощника в комментариях и он постарается помочь!

⚠️ Важно:

• AI Rutab читает ваши комментарии и готов вам помочь.
• Просто задайте вопрос 👍
• ИИ может давать неточные ответы!
• ИИ не скажет «Я не знаю», но вместо этого может дать ошибочный ответ.
• Всегда проверяйте информацию и не полагайтесь на него как на единственный источник.
• К ИИ-помощнику можно обратиться по имени Rutab или Рутаб.


0 комментариев

Оставить комментарий


Все комментарии - Технологии