Программист создал 3D-графику и физический движок с нуля и демонстрирует его с помощью самодельного GPU
Программист-самоучка Алекс Фиш опубликовал демонстрацию движка для 3D-графики и физики, который он сделал полностью с нуля - он работает на GPU, который он сделал из базовых деталей. В сам GPU встроен экран со стиками для управления экранной графикой.
Эта история очень похожа на самодельный FuryGPU, о котором я рассказывал неделю назад. Но этот самодельный GPU от Алекса Фиша ориентирован на программную сторону разработки GPU, а не только на аппаратную часть GPU.
Для создания аппаратной части использовались различные готовые детали, которые можно купить самостоятельно. Эти детали состоят из 1,91-дюймового AMOLED-дисплея с подключенным к нему беспроводным модулем платы разработки, джойстиков SparkFun и макетной платы SparkFun Qwiic Mux.
Хотя аппаратное обеспечение не является полностью индивидуальным, 3D-движок Алекса, используемый на самодельном GPU, является таковым. Программист создал 3D-графику и физический движок (получивший название ESPescado) полностью с нуля, используя C++ и OpenGL. Даже библиотеки, содержащие векторную и матричную математику, были написаны с нуля. Физика и геометрия отображаются в 3D - однако, чтобы изображения действительно выглядели 3D, движок использует матрицу перспективной проекции и перспективное деление, чтобы превратить 3D-объекты в 2D-изображения. Это основы 3D-графики.
Самодельный 3D-движок также использует сетки. Сетки создаются из точек и линий, которые группируются в треугольники, которые затем группируются в сетки. По терминологии видеоигр, сетки составляют основу объектов и местности, которые мы видим в игре, и именно они придают им фотореалистичные характеристики. Эти сетки помещаются в "мир" с помощью матрицы "модель-мир" (TRS). Система TRS может масштабировать, вращать и переводить каждую видимую точку из локального пространства в мир.
Алекс смог продемонстрировать вживую, как этот самодельный графический движок работает на его крошечном 1,91-дюймовом наборе для разработки GPU. В видеоролике на YouTube показано, как графический процессор отображает зеленый треугольный объект на черном фоне. С помощью двух джойстиков, которые он подключил к GPU, он смог перемещать объект, подобно точке зрения от третьего лица в видеоигре.
Сама по себе демонстрация не является чем-то революционным, но она доказывает, что 3D-графические движки ручной работы могут быть созданы с нуля. Если у Алекса есть связи с Диланом Барри - создателем FuryGPU, - мы можем увидеть полноценную 3D-видеоигру, полностью основанную на самодельном оборудовании и программном обеспечении. Если вы хотите ознакомиться с 3D-движком Алекса, он создал несколько страниц на GitHub с подробным описанием 3D-движка, а также оборудования, которое он использовал для его работы.
Источник: tomshardware.com
