帧同步分离逻辑层和渲染层_跨平台渲染引擎之路:框架与核心模块

5409de89c8a8b9fdb34f846374abb0ab.png

前言

说好的保持一月一更再次食言了,再也不敢随便立Flag了,这段时间只能在业余时间进行 GPUImage-X 的设计和第一版的落地,除了时间因素之外,还有就是想要把第一版的整体框架和基础能力都能以更编码规范、考虑更充分地落地下来,不仅仅是一个小玩具更是一个可以被使用的渲染库,因此在过程中就会出现返工重复调整等情况。

目前 GPUImage-X 的整体框架中各个层级的主要模块已基本落地,整体设计上在个人来看符合我们上一篇中的部分目标:以游戏引擎的效果和特性,支持图片/视频等场景下的跨平台3D渲染库。在功能上,该库落地了图层、滤镜链、变换、包括转场、遮罩、叠加在内的混合模式等基本功能,同时不管是更多样的图层元素还是粒子、光照等更广泛的效果都也已具备了对应扩展性。在项目里配套了一个可调节上述能力参数效果的Demo,不过目前只实现了Mac上的版本,其他平台的在下一步规划里会优先安排上,确保跨平台可用这一点。

那么接下来这篇文章主要会介绍这个过程中自己的一些想法还有踩过的一些坑,有存在问题的地方期待看的大佬们交流纠正~

站在bgfx的肩膀上

首先简单说一下为什么一开始先基于bgfx来搭建这个项目,一方面是在于时间成本上,自己从头开始撸一个渲染API封装的框架的话是很耗时的,会导致看到效果的周期被不断拉长,难以快速得到反馈和验证,另一方面就是对于各个平台的渲染API目前还并未完全掌握,即使去写也肯定是需要借鉴甚至照搬bgfx的设计,很难有所超越。因此在目前的阶段先选择基于bgfx之上来进行开发和学习,重点去理解bgfx的设计理念和实现思路,记录下踩过的坑和自己感觉使用不便、可以完善优化的一些地方,作为后续自己开发渲染框架的基础,这部分后续在开始落地时也会再有文章来进行记录和分享。

要依赖bgfx来进行二次开发还是有一定难度的,光配置依赖关系就折腾了一会。目前是借鉴于 bgfx.cmake 的思路,将其配置好的CMakeList 以及 .cmake 文件迁移到了 GPUImage-X 的项目中并且做了一些定制化修改(当然会不断同步更新的),比如 bgfx.cmake 中是自己搞了一个App类来作为Demo运行基类, GPUImage-X 则直接使用了 bgfx 的entry以及自带的工具,避免重复的编码工作。具体的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值