Pourquoi est-ce important: Dans un monde dominé par les puissants GPU de NVIDIA et AMD, un codeur autodidacte démontre qu’il est possible de créer des graphiques 3D impressionnants à partir de zéro. Alex Fish a publié un moteur 3D remarquablement fluide qui fonctionne sur un petit GPU maison alimenté par un microcontrôleur Espressif ESP32-S3.
Ce n’est pas la première fois que Fish se lance dans le graphisme homebrew. Il a d’abord développé le moteur « Pescado » en WebGL pour les navigateurs web, puis l’a porté en OpenGL pour les cartes graphiques PC. Cependant, obtenir un rendu 3D fluide sur un microcontrôleur basse consommation constitue un pas de géant.
Le moteur de Fish, baptisé « ESPescado » pour le port ESP32, est entièrement réalisé à la main en utilisant C++ et OpenGL. Il a créé les bibliothèques mathématiques vectorielles, matricielles et de rendu à partir de zéro. Comme l’explique Fish, « le traitement physique et géométrique s’effectue en 3D, mais lors de l’affichage de l’image sur un moniteur 2D, seuls les points 2D peuvent être tracés ».
ESPescado utilise la projection en perspective pour aplatir les objets 3D en 2D pour l’écran.
De plus, il est assez réactif. Grâce à la conception double cœur de l’ESP32, le code de Fish peut gérer la physique et le traitement des entrées à 700 images par seconde sur un cœur, tandis que l’autre cœur se concentre sur le rendu fluide des wireframes à 40 ips.

Le hardware lui-même est le rêve d’un hacker : un écran compact de 1,9 pouces, 320 x 160 pixels, entouré de cerveaux ESP32, associé à des joysticks externes qui permettent un contrôle 3D complet. Un joystick se fixe même à votre doigt pour une expérience immersive. Un accéléromètre fournit une entrée de mouvement pour ajuster la caméra du jeu.
Sous le capot, ESPescado utilise la boîte à outils 3D standard de maillages, de sommets et de matrices. Les maillages, construits à partir de triangles de points et de lignes, forment les objets et terrains de base vus dans les jeux vidéo. Le moteur peut ensuite appliquer des transformations telles que la mise à l’échelle, la rotation et le positionnement pour placer ces maillages dans le monde virtuel 3D.
Une démo YouTube présente ESPescado en action, avec Fish manipulant un simple objet triangulaire vert sur fond noir. Il offre un aperçu de base des capacités du moteur, démontrant que même les graphiques 3D les plus fondamentaux peuvent être développés à partir des premiers principes.
Pour les bricoleurs et les étudiants en mathématiques 3D, le projet de Fish offre un aperçu fascinant des concepts fondamentaux derrière les moteurs 3D. La version ESP32 « ESPescado » et la version OpenGL originale « Pescado » ont été publiées sur GitHub pour que quiconque puisse les étudier et s’en servir.
Détente, découvrez l’évolution du nombre de smartphones vendus par marque au fil du temps dans la vidéo ci-dessous :

