系列文章:
1.基于BLE SoC芯片GR5526开发GPU 3D图形效果(1) - 概览
2.基于BLE SoC芯片GR5526开发GPU 3D图形效果(2) - 先看Demo效果
3.基于BLE SoC芯片GR5526开发GPU 3D图形效果(3) - GPU知识概念梳理
4.基于BLE SoC芯片GR5526开发GPU 3D图形效果(4) - 解析第一个GPU工程
5.基于BLE SoC芯片GR5526开发GPU 3D图形效果(5) - 理解图形学中的矩阵变换
6.基于BLE SoC芯片GR5526开发GPU 3D图形效果(6) - 开发炫酷新动画
接上篇博客: .
1.基于BLE SoC芯片GR5526开发GPU 3D图形效果(1) - 概览
在进入Goodix GR5526 SoC的 图形模块 (GPU) 学习前, 先看看官方SDK 提供的 GPU Demo 的运行效果.
一、环境简要说明
拿到汇顶提供的GR5526 SK 开发板后, 从官方网站下载 GR5526 对应的SDK 包(https://www.goodix.com/zh/software_tool/gr5526_sdk).
如果是第一次使用 SDK包,SDK 内工程优先推荐IDE 是keil, 因此需要先安装 Keil 和 Jlink驱动; 安装完成Keil 后, 需要将适用于 GR5526 的算法烧写文件, 拷贝到 keil的下载算法目录.
- GR5526 烧写算法文件位于SDK目录 ${SDK}\build\keil\GR5xxx_16MB_Flash.FLM
- Keil 算法文件目录(一般情况下) 如下, 如果安装keil 时候更换了安装目录, 找到相对路径放置就好
经过以上步骤, 就可以通过 keil 编译、烧写和调试 GR5526 SDK 提供的示例工程了.
SDK 根目录有一个 说明文档, 也对SDK内容和环境做了一个简单说明, 可以参考下
二、图形化示例工程
图形化示例工程位于目录 ${SDK}\projects\peripheral\graphics\ 下. 我下载到的是SDK 1.0.0版本, 打开目录后内容如下.
工程提供了图形化硬件模块或功能模块的示例, 通过 Keil 打开工程文件, 就可以进行编译和烧写.
先挑几个官方Demo, 编译烧写到 GR5526 SK板, 看下效果, 下面SK用到的屏幕是 454x454 分辨率. (由于视频压缩为gif 图片, 画面效果看起来有一定损失)
Graphics_animation_effects
这个工程提供了一些画面转场效果的演示, 带明显的3D特征, 看起来有 立方翻转、淡入淡出、堆叠、渐变等几种.
从代码枚举看, 默认支持下面的3D转场效果
/**@brief Definition of transition effect. */ typedef enum { HAL_GFX_TRANS_LINEAR_H, /**< Linear transition horizontally. */ HAL_GFX_TRANS_CUBE_H, /**< Cubic transition horizontally. */ HAL_GFX_TRANS_INNERCUBE_H, /**< Inner Cube transition horizontally. */ HAL_GFX_TRANS_STACK_H, /**< Stack transition horizontally. */ HAL_GFX_TRANS_LINEAR_V, /**< Linear transition vertically. */ HAL_GFX_TRANS_CUBE_V, /**< Cubic transition vertically. */ HAL_GFX_TRANS_INNERCUBE_V, /**< Inner Cube transition vertically. */ HAL_GFX_TRANS_STACK_V, /**< Stack transition vertically. */ HAL_GFX_TRANS_FADE, /**< Fade transition. */ HAL_GFX_TRANS_FADE_ZOOM, /**< Fade-zoom transition. */ HAL_GFX_TRANS_COVER, /**< Cover transition. */ } hal_gfx_transition_t; |
Graphics_rotate_box
这个工程展示了用GPU绘制一个旋转立方体的效果, 工程中提供了两种效果,一种是每个立方体面纹理贴为颜色,另一种立方体面纹理贴为图片。下面展示的是立方体面为颜色的效果.
Graphics_lvgl_watch_demo
这个工程相对于其他演示工程,是一个相对完善的watch demo (手表演示) 演示工程, 基于开源GUI框架 Lvgl开发,参考watch设计了交互逻辑, 进行了 一些典型界面的UX实现. 提供了图片资源和字体资源,还有完整的各类外设驱动移植集成, 可以作为 watch 设计的一个参考.
通过这个演示工程看, 帧率挺快的, 而且集成了界面间的转场效果。看来 Lvgl 的绘制层已经用GPU的实现替换了, 界面切换也重新集成了GPU的转场效果.
(挖坑: 后面有时间再梳理下这个工程的代码逻辑及实现, 因为产品在实现过程中, 较多的从这个工程借用了一些参考实现)
除上述演示工程外, SDK 还提供了其他的图形化工程及各种外设/BLE Profile的参考工程。 可以作为各外设和蓝牙的学习材料.
三、小结
在嵌入式SoC 加入GPU 处理单元, 从工程演示的demo看, GR5526 的图形化显示能力还是很优秀的, 可以做一些有意思的效果.