程序员从零开始制作流畅的3D图形引擎 并在DIY的GPU上运行
程序员从零开始制作流畅的3D图形引擎并在DIY的GPU上运行这并不是Fish首次涉足自制图形。他最初用WebGL开发了用于网络浏览器的"Pescado"引擎,然后将其移植到用于PC显卡的OpenGL上。不过,在低功耗微控制器上实现流畅的3D渲染是一次重大飞跃。Fish的引擎被命名为"ESPescado",用于ESP32移植,完全使用C++和OpenGL手工制作。他从零开始创建了向量、矩阵和渲染数学库。正如Fish解释的那样,"物理和几何处理发生在3D中,但在2D显示器上显示图像时,只能绘制2D点"。ESPescado使用透视投影技术将3D物体平面化为屏幕上的2D物体。此外,它的响应速度也相当快。得益于ESP32的双核设计,Fish的代码可以在一个内核上以每秒700帧的速度处理物理和输入处理,而另一个内核则专注于以每秒40帧的速度流畅地渲染线框。制作硬件本身就是黑客的梦想:一个小巧的1.9英寸320x160像素显示屏,周围环绕着ESP32大脑,配上可实现全3D控制的外置操纵杆。其中一个操纵杆甚至可以连接到手指上,带来身临其境的体验。加速计提供运动输入,用于调整游戏中的摄像头。在引擎盖下,ESPescado使用网格、顶点和矩阵等标准3D工具包。网格由三角形的点和线构成,是视频游戏中的基本物体和地形。然后,引擎可以应用缩放、旋转和定位等变换,将这些网格放置在虚拟3D世界中。YouTube上的一个演示展示了ESPescado的运行情况,Fish在黑色背景中操纵一个简单的绿色三角形物体。它让人们对该引擎的功能有了一个基本的了解,表明即使是最基本的三维图形也可以根据第一原理进行开发。对于工匠和三维数学专业的学生来说,Fish的项目让他们对三维引擎背后的核心概念有了迷人的一瞥。ESP32"ESPescado"版本和原始OpenGL"Pescado"版本都已发布在GitHub上,供所有人研究和构建。...PC版:https://www.cnbeta.com.tw/articles/soft/1426230.htm手机版:https://m.cnbeta.com.tw/view/1426230.htm
在Telegram中查看相关推荐
🔍 发送关键词来寻找群组、频道或视频。
启动SOSO机器人