Программист создал 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
"использовались различные готовые детали, которые можно купить самостоятельно"
слабак, мог бы сам выращивать кристаллы
Я видел чела на Ютубе, который делал транзисторы с нуля..
Сделать транзистор не сложно, как и собрать из них сумматор или батарею, так делали первые компы, но это будет машзал, а не что-то похожее на пк.
А мог бы и собрать видеокарту с нуля..
https://www.youtube.com/watch?v=l7rce6IQDWs&t=1s
купить контроллер с алика esp32 назвать его самодельным гпу. Хьтьфу ему в лицо.
Ну програмную часть написал с нуля, уже не тьфу.
Мне пожигает жопу надпись "самодельное гпу", по факту он написал Api под микроконтроллер или граф библиотеку. А само гпу разработали китайцы, у него и озу свое и прочее. Пы сы, сам пишу код под есп)
Там очень простая математика. В основном сложение и умножение. Редко синусы косинусы, но ничего сложного.
У меня на втором курсе был предмет компьютерная графика. Дали тонкий справочник страниц на 50. Через неделю я рисовал линиями и точками на экране вращающуюся 3д модель.
Про физику не могу сказать и про электронную часть -- это я плохо понимаю, особенно последнее. Поэтому восхищаюсь.