Kendi kendini yetiştirmiş bilgisayar programcısı Alex Fish bir gösteri yayınladı Tamamen sıfırdan yaptığı, temel parçalardan yaptığı bir GPU üzerinde çalışan bir 3 boyutlu grafik ve fizik motorunun. GPU’nun kendisi, ekrandaki grafikleri kontrol etmek için kontrol çubuklarının bulunduğu yerleşik bir ekrana sahiptir.
Bu hikaye, bir hafta önce ele aldığımız ev yapımı FuryGPU’ya çok benziyor. Ancak Alex Fish’in bu ev yapımı GPU’su, yalnızca GPU donanımından ziyade, GPU geliştirmenin yazılım tarafına yöneliktir.
Donanımın kendisi, kendiniz satın alabileceğiniz çeşitli hazır parçalardan yapılmıştır. Parçalar şunlardan oluşur: Geliştirme kartı kablosuz modülüne sahip AMOLED 1,91 inç ekran ona bağlı, SparkFun Kumanda Kollarıve bir SparkFun Qwiic Mux koparma panosu.
Donanım tamamen özel olmasa da Alex’in ev yapımı GPU’da kullandığı 3D motoru öyle. Programcı, C++ ve OpenGL kullanarak 3 boyutlu grafikleri ve fizik motorlarını (ESEScado motoru olarak adlandırılır) tamamen sıfırdan oluşturdu. Vektör ve matris matematiğini içeren kütüphaneler bile sıfırdan yazılmıştır. Fizik ve geometri 3 boyutlu olarak işlenir; ancak görüntülerin gerçekten 3 boyutlu görünmesini sağlamak için motor, 3 boyutlu nesneleri 2 boyutlu görüntülere dönüştürmek üzere bir perspektif projeksiyon matrisi ve perspektif bölümü kullanır. Bunlar 3D grafiklerin temelleridir.
Ev yapımı 3D motor aynı zamanda ağlardan da yararlanıyor. Kafesler, üçgenler halinde gruplandırılan ve daha sonra kafesler halinde gruplandırılan noktalardan ve çizgilerden yapılır. Video oyunu terminolojisinde ağlar, oyunda gördüğümüz nesnelerin ve arazinin temelini oluşturur ve onlara fotogerçekçi özelliklerini veren şeydir. Bu ağlar, modelden dünyaya matris (TRS) ile “dünyaya” yerleştirilir. TRS sistemi, görünen her noktayı yerel uzaydan dünya uzayına ölçeklendirebilir, döndürebilir ve çevirebilir.
Alex, 1,91 inçlik küçük GPU geliştirme kiti üzerinde çalışan bu ev yapımı grafik motorunun canlı bir demosunu paylaşma fırsatı buldu. Bir YouTube videosunda GPU’nun siyah bir arka plan üzerinde yeşil üçgen bir nesne gösterdiği görülüyor. GPU’ya bağladığı iki kumanda koluyla, bir video oyunundaki üçüncü şahıs bakış açısına benzer şekilde nesneyi hareket ettirebildi.
Demonun kendisi çığır açıcı olmasa da el yapımı 3D grafik motorlarının sıfırdan yapılabileceğini kanıtlıyor. Alex’in FuryGPU’nun yaratıcısı Dylan Barrie ile bağlantısı varsa, tamamen ev yapımı donanım ve yazılımla çalışan tam gelişmiş bir 3D video oyununu potansiyel olarak görebiliriz. Alex’in 3D motoruna göz atmak isterseniz, kendisi konuyla ilgili ayrıntıları içeren birkaç GitHub sayfası oluşturdu. 3 boyutlu motor aynı zamanda donanım o çalıştırıyordu.