程序员从零开始制作流畅的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 英寸 320 x 160 像素显示屏,周围环绕着 ESP32 大脑,配上可实现全 3D 控制的外置操纵杆。其中一个操纵杆甚至可以连接到手指上,带来身临其境的体验。加速计提供运动输入,用于调整游戏中的摄像头。在引擎盖下,ESPescado 使用网格、顶点和矩阵等标准 3D 工具包。网格由三角形的点和线构成,是视频游戏中的基本物体和地形。然后,引擎可以应用缩放、旋转和定位等变换,将这些网格放置在虚拟 3D 世界中。YouTube 上的一个演示展示了 ESPescado 的运行情况,Fish 在黑色背景中操纵一个简单的绿色三角形物体。它让人们对该引擎的功能有了一个基本的了解,表明即使是最基本的三维图形也可以根据第一原理进行开发。对于工匠和三维数学专业的学生来说,Fish 的项目让他们对三维引擎背后的核心概念有了迷人的一瞥。ESP32"ESPescado"版本和原始OpenGL"Pescado"版本都已发布在 GitHub 上,供所有人研究和构建。 ... PC版: 手机版:

相关推荐

封面图片

Windows NT 3.5程序员讲述微软标志性“3D管道”屏幕保护程序的起源故事

Windows NT 3.5程序员讲述微软标志性“3D管道”屏幕保护程序的起源故事 程序员 Raymond Chen 的故事要从他的朋友说起,90 年代中期,他在微软公司的 OpenGL 图形编程接口团队工作,当时他的同事还未透露姓名。他们为即将发布的Windows NT 3.5成功实现了硬件加速 OpenGL,但却没有办法向最终用户展示先进的 3D 渲染功能。随着操作系统发货日期的临近,该团队需要一个"华而不实"的 OpenGL 演示,而且进度要快。他的同事提议在 Windows 团队内部举办屏保设计大赛。屏幕保护程序是一个完美的低风险工具,因为出现任何问题都不会影响大局。比赛规则很简单:每个小组制作最炫目的 3D 屏幕保护程序,由全公司投票决定优胜者。获胜的屏幕保护程序将成为 Windows NT 的最终产品。OpenGL 小组全力以赴,制作出了 3D 文字、3D 迷宫和 3D 飞行物体等 3D 动画。但他们的杰作是令人费解的 3D Pipes。在收集了所有参赛作品后,团队向他们的 Windows NT 同事发送了安装说明和投票链接。正当评委们准备统计票数时,市场部的一位同事大吃一惊,宣布他们的所有作品都值得在 Windows NT 中使用。幸运的是,看到这些新屏保的人中有一位是营销团队的成员,他在纽约与一家大型计算机行业杂志进行预定访问的前一晚试用了这些屏保。他非常喜欢这些屏保,并回信说:"你们可以取消投票了。我们会把它们全部添加到产品中。"就这样,通过一封电子邮件,3D 管道屏保和其他参赛作品一夜之间从地下实验变成了成千上万计算机的桌面。在 CRT 显示器时代,这些屏幕保护程序除了是一种初级 3D 渲染演示外,还能防止屏幕烧毁。现在人们不再担心这个问题了,所以屏保也不再流行。不过,如果你怀旧,想在工作间隙喝杯咖啡放松一下,互联网档案馆里有这些屏保。这些古老的文件仍可在现代系统上运行。只需从 Internet Archive 的"Windows XP 和 98 Screensavers"页面下载压缩文件,并将内容解压缩到 System 32 文件夹中。你可以在屏保设置中找到它们。 ... PC版: 手机版:

封面图片

兆芯x86 CPU搭配统信UOS 成功运行国内三维图形引擎

兆芯x86 CPU搭配统信UOS 成功运行国内三维图形引擎 Q-MAP三维地理信息及图形软件主要面向智慧城市、消防、交通、能源、港口、水利等行业应用,此次在信创环境下成功运行,为我国掌握软硬件工业标准的话语权提供了技术支撑,可为多种行业的管理决策提供更有力的数据保障。三维GIS(地理信息系统)地图引擎首先需要强大的数据处理能力,能处理大规模的三维地理空间数据,包括地形、地貌、建筑物等各种类型的地理信息。其次,要有足够的易用性和可扩展性,方便定制和二次开发,比如叠加车船、气象数据,生成地形剖面等。最后,由于内含各类地理、建筑空间数据,信息安全是国内三维GIS地图引擎的核心价值,能够自主掌控的软件才能确保地理数据的安全性和完整性。迅图Q-MAP自研的三维引擎产品是一款高速实时轻量化数字孪生引擎,具备完整适应国内独立计算机产业环境的能力。它基于操作系统底层图形API接口(OpenGL/DirectX/Vulkan),自主设计开发原生三维地图渲染引擎,并采用自主设计的安全互联网数据格式、自主设计的高速实时数据通道及处理机制,具有完全自主的知识产权。它集成了城市地理信息、建筑信息、机电设备信息、传感器采集信息、管理流程信息等数字化模型、运行历史数据,集成乐多部门、多专业、多尺度的仿真应用,可以在虚拟空间中完成宏观到微观的统一映射,具备超大规模数据实时处理及可视图形交互能力,支持游戏级次世代渲染效果,能够为智慧城市的仿真调度、精细化管理、统一应急指挥等工作提供有力的技术支持。兆芯开先KX-7000系列处理器兼容x86指令集,最高工作频率3.7GHz,最大缓存32MB,支持最高128GB DDR5/DDR4内存,内置24通道PCIe 4.0,支持USB4/USB3、SATA3等主流IO,支持处理器和IO虚拟化技术,同时集成高性能显卡,支持DX12、OpenCL 1.2、OpenGL4.6,支持双路4K硬解码,计算性能和图形性能分别达到兆芯上一代产品的2倍和4倍,并支持兆芯自研的SM2、SM3、SM4国密算法加速指令。 ... PC版: 手机版:

封面图片

新的Meta 3D Gen可在一分钟内根据文本生成高质量的3D素材

新的Meta 3D Gen可在一分钟内根据文本生成高质量的3D素材 Meta 的人工智能研究团队最近推出了 Meta 3D Gen (3DGen),这是一种用于文本到 3D 素材生成的最先进的新系统。Meta 声称,这一新系统可以在一分钟内生成高质量的 3D 素材。生成的三维素材将具有高分辨率纹理和材质贴图。3DGen 还支持基于物理的渲染(PBR)和对以前生成的 3D 素材进行生成再纹理。Meta 3D Gen 结合了两个主要组件:文本到 3D 生成和文本到纹理生成。下面是它的工作原理:第一阶段:三维素材生成根据用户提供的文本提示,第一阶段使用 Meta 的三维素材生成模型(AssetGen)创建初始三维素材。这一步将生成带有纹理和 PBR 材质贴图的 3D 网格。推理时间约为 30 秒。第 2 阶段:用例 1:生成三维纹理细化根据阶段 1 生成的三维素材和初始文本提示,阶段 2 将为该素材生成更高质量的纹理和 PBR 贴图。它使用 Meta 的文本到纹理生成器 Meta 3D TextureGen。推理时间约为 20 秒。用例 2:生成三维(再)纹理给定一个未纹理化的三维网格和一个描述其所需外观的提示。阶段 2 还可以从头开始为该三维素材生成纹理(网格可以是以前生成的,也可以是艺术家创建的)。推理时间约为 20 秒。您可以在这里阅读 Meta 3D Gen 的技术论文全文。Meta 公司还发表了技术论文,介绍他们用于高质量三维模型生成和基于文本提示的纹理生成的方法,这些方法是 Meta 3D Gen 系统的基础。 ... PC版: 手机版:

封面图片

宣布开放3D引擎的第一个主要版本 。目前支持Windows和Linux平台。

宣布开放3D引擎的第一个主要版本 。目前支持Windows和Linux平台。 开放 #3D 引擎 (O3DE) 是一种模块化、开源、跨平台的 3D 引擎,旨在为从 AAA 游戏到影院级 3D 世界到高保真模拟的任何事物提供支持。无需支付费用或承担商业义务。 采用Apache 2.0 许可。 由 Linux 基金会管理

封面图片

用于实时编码世界的3D游戏引擎

用于实时编码世界的3D游戏引擎 Fluxus 是一个用于 3D 图形、声音和游戏的快速原型制作、游戏和学习环境。使用图形命令扩展Racket语言,可以在它自己的实时编码环境中或从 DrRacket IDE 中使用。 Fluxus 是跨平台的(Linux、Windows、OSX、Android、PS2、Raspberry Pi 和 WebGL),并在GPL许可下发布。

封面图片

WebGPU是新的WebGL,是绘制3D图形的新方法,并有望成为绘制2D图形的标准。| WebGPU可以取代Vulkan和普通O

WebGPU是新的WebGL,是绘制3D图形的新方法,并有望成为绘制2D图形的标准。| WebGPU可以取代Vulkan和普通OpenGL,成为任意编程语言中任意软件绘制图形的标准。Chrome113已经支持WebGPU,到年底WebGPU将在所有浏览器中普及。 WebGPU的推出对非程序员的影响可能不大,但它有望使浏览器中运行网页游戏成为常态,浏览器里运行类似ChatGPT的大型LLM模型应用也很值得期待。对程序员而言,WebGPU注定是一个重大的进步。

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人