【原创】STM32F4系列3D引擎开发过程记录分享

2020-03-01 11:58发布

目前在STM32上还没有找到一个完整的开源3D引擎,因此我决定继续完成大学时的梦想,从零写一个3D引擎。

渲染采用了通用的三角形渲染方法,既三点确定一个面信息,与四边形渲染法的优势在于,三角形渲染法在复杂模型上更节约内存。也是目前所通用的一种渲染方法,显卡里有个指标叫三角形填充率,就是指这个。

既然要运行在单片机上,就要精简掉一些功能。比如贴图。。。因此我写的这个不支持贴图功能,只能进行指定颜 {MOD}填充。

给大家看看我开发的3D引擎的大致思路: 渲染流程.jpg

最后进行光栅化处理就能显示到LCD屏幕上了,其实3D引擎的开发主要是连线,将空间上的点连成三角形,然后去填充这些三角形,最后投影到LCD上。

旋转矩阵计算方式:
2019012923351176.png


单片机选用了STM32F407ZET6,cortex-m4内核有浮点单元(但是为了兼容性,我没使用)

整个代码优化了浮点,但是渲染精度很差,还需要继续优化。

给大家看看单片机显示效果:
152244503596265576.jpg
实际模型:
UC截图20200217183349.png


动态旋转效果我发到优酷上了,优酷上搜索“STM32F407单片机3D模型渲染显示-流畅15帧”可以观看

代码先不放出了,有厂家想要这个代码,我看以后写个简单的版本,再放出来。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
圣骑士by
1楼-- · 2020-03-01 15:55
让STM32干这活是不是。。。
冬瓜盅
2楼-- · 2020-03-01 21:02
 精彩回答 2  元偷偷看……
冬瓜盅
3楼-- · 2020-03-01 22:46
这种操作,是不是Gui有现成的库
1211762993
4楼-- · 2020-03-02 01:17
冬瓜盅 发表于 2020-2-18 16:04
这种操作,是不是Gui有现成的库

没有,完全的从零开发的,只用了STM32F4的std标准库
王紫豪
5楼-- · 2020-03-02 07:00
支持楼主!采用硬件浮点单元,是不是会更快一些。
王紫豪
6楼-- · 2020-03-02 07:25
希望完善完善,开源一下

一周热门 更多>