打印
[GUI]

EmberGL(3D引擎库) On AT32F437-附源码

[复制链接]
1383|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
muyichuan2012|  楼主 | 2023-1-30 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 muyichuan2012 于 2023-1-30 18:16 编辑

EmberGL(3D引擎库) On AT32F437



示例目的
本示例演示在AT32F437 MCU上运行EmberGL。
演示视频效果链接如下:
https://b23.tv/ieMLePz



支持型号
AT32F435xx
AT32F437xx


EmberGL 概述
EmberGL(Ember Graphics Library)是一个初级开源图形库,类似于 OpenGL/DirectX/Vulkan,专
为 MCU 和其他内存受限的非 GPU 系统上实时 2D/3D 渲染而设计。图形 API 专门为此类系统设
计,利用此技术能够在紧张的内存预算内最大限度地提高渲染性能,同时提供大量的灵活性和可定制
性。该库可用于预算更慷慨的其他目标,适用于受益于软件光栅化的项目,并且可以使用Visual
Studio 和GCC 等进行编译. 由于 EmberGL 是一个低级库,它仅提供灵活高效的三角形光栅化的核
心渲染功能,以及支持组件和一组显示驱动程序。这些低级功能可用于直接应用程序开发或开发高效
的高级图形库,例如 GUI 库或 3D 引擎。
该库具有基于图块的软件光栅化器,无需为整个显示帧和深度缓冲区使用 RAM 即可实现无闪烁渲
染,从而将库的适用性扩展到更广泛的设备和项目。Tile-Base Rendering (TBR) 架构通常用于移动
设备和一些桌面 GPU,主要是由于内存带宽优势(更多信息请访问Arm Developer 网站)。
EmberGL 的 TBR 引擎可以通过配置光栅化器属性(例如图块大小、深度缓冲区格式、中间图块像
素格式等)来针对广泛的内存和性能要求进行定制。
EmberGL 支持各种固定功能管道功能,例如一组深度测试、三角形剔除模式、三角形插值模式等。
除了固定功能功能外,该库还支持 C++ 可编程混合以及顶点和像素着色阶段自定义几何和灯光效
果。为了在支持一组灵活的功能的同时获得高性能,光栅化器广泛利用 C++ 模板在程序编译期间为
每组使用的功能生成优化的光栅化器。这消除了任何未使用的特征分支并将着色器代码紧密嵌入到光
栅化器中,从而为每个使用的特征和着色器组合优化光栅化器。
除了光栅化器之外,EmberGL 还提供了一组不断增加的优化显示驱动程序,以有效地将光栅化像素
传送到显示器。例如,该库包含优化的显示驱动程序,适用于支持 DMA 的流行 ILI9341 显示。可
以通过实现一个窄设备接口来扩展驱动程序集,它将新驱动程序挂接到光栅化器,其中主要实现重点
是设备初始化和像素数据传输,而不必担心光栅化器的复杂性。
EmberGL 源码地址
https://github.com/EmberGL-org/EmberGL


快速使用方法
硬件资源
 AT-SURF-F437开发板(AT32F413xx)
软件资源
 SC0108_SourceCode
示例使用
软件使用:
 打开SC0108_SourceCode\utilities各示例工程,编译通过之后下载到开发板
 观察LCD显示的3D图形旋转效果

SC0108_SourceCode_V2.0.0.zip

3.74 MB

SC0108_EmberGL_On_AT32F437_ZH_V2.0.0.pdf

307.04 KB

使用特权

评论回复
评论
forgot 2023-2-27 15:33 回复TA
借鉴学习一下 
沙发
weifeng90| | 2023-2-8 07:49 | 只看该作者
这个看起来不错啊,还能做3D渲染。

使用特权

评论回复
板凳
中国龙芯CDX| | 2023-3-9 15:55 | 只看该作者
3D效果的真不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

1887

帖子

28

粉丝