「安卓原生3D开源渲染引擎」Sceneform‑EQR:我的开源进化之路

「安卓原生3D开源渲染引擎」Sceneform‑EQR:我的开源进化之路
在这里插入图片描述

Sceneform‑EQR:我的开源进化之路

“那一夜凌晨 3 点,第一次提交 PR 的手在抖……”
—— 那是我第一次把代码推向世界,也是我真正开始与开源世界对话的起点。

文章目录


一、起点:一次“救火”式的开源尝试

2020 年,Google 官方宣布 sceneform-android-sdk 归档。对很多 Android 3D/AR 开发者来说,这是一次技术断崖。

在这里插入图片描述

而我,当时正是一名“AR + GIS”的一线开发人员,Sceneform 是我们业务中与 ARCore 深度结合的核心模块。SDK 突然停摆,不只是“无法更新”,更是直接影响业务连续性。

起初,我只是“临时救火”:Fork 一份仓库,想办法让它多撑一阵子。但这个“应急操作”很快演变成一次深入的技术探索——我开始学习Filament、尝试接入华为 AREngine、调试场景渲染 bug,逐步把 Sceneform 从“被遗弃的代码”转变为“可维护、可拓展的系统”。

也正是在这个过程中,我意识到:

这不是在修复一个 SDK,而是在建造一座属于中国开发者自己的 3D 渲染桥梁。

二、一段接力:从谷歌到社区,再到我

1、SceneView/sceneform-android

谷歌 Sceneform 被归档后,社区的开发者们并未放弃这条技术线。

开发者 ThomasGorisse 接过了第一棒,基于原始 SDK 构建并维护了 SceneView sceneform-android,为社区延续了 Sceneform 的生命。

在这里插入图片描述

但在 2023 年之后,这条线也停止了维护。

在这里插入图片描述

2、EQ-Renderer

在ThomasGorisse的仓库不再维护Java接口的Sceneform之后,我开始维护一个私有的仓库,初次命名为“EQ-Renderer”,意为“EQ的渲染器”。

主要内容是基于谷歌存档的Sceneform-android-sdk,接入了ThomasGorisse对Sceneform的一些修改。并解决了gltf模型加载内存泄漏问题,接入了AREngine,解决了由于颜色映射异常导致的View颜色显示不正确的问题。

repo截图:

在这里插入图片描述


版本记录:

在这里插入图片描述

3、Sceneform‑EQR

2024年初,我开源了自己的本地库“EQ-Renderer”,并重命名为“Sceneform‑EQR”。

在这里插入图片描述

EQR = Extended, Quick, Rewired

一套为新场景而生、快速适配、重新连接生态的安卓原生 3D 渲染引擎。

这是我第一次在社区独立维护一个依赖库——我不是在“造轮子”,而是在“守火种”。

尽管文档不完善,也没有做任何推广,仅是随缘挂着,但总会有一线研发人员私信我,请教适配问题或请求 SDK 支持。

这些沟通、答复与调试,都是出于对 Sceneform 的热爱——
哪怕只有一个人用着,它也值得被延续。

在这里插入图片描述

三、如今的 Sceneform‑EQR

至今,我一直以个人开发者身份维护这份代码。

不再有业务束缚,我可以真正从架构层重构它:

  • 翻译 Sceneform 源码,增补注释;
  • 剔除已弃用的接口;
  • 理解 Filament 材质调用流程;
  • 深入安卓与底层渲染接口的适配逻辑;
  • 尝试更多的可能,扩展新功能;

我把它当作一次学习机会,一个可以实践所有三维原生图形想法的场所。

Sceneform‑EQR 是 EQ(EQ-雪梨蛋花汤) 对谷歌 sceneform-android-sdk 的扩展,适用于图形与视频、增强现实(AR)和虚拟现实(VR)相关领域。
它集成了 ARCore、AREngine 和 ORB-SLAM,支持普通场景、AR 场景、VR 场景以及自定义背景场景,以满足多端多样的原生三维开发需求。

1、GitHub & GitCode 双平台同步

2025 年 7 月,为方便国内开发者访问,项目实现了:

GitHub ⇌ GitCode 双向同步

从此,国内外开发者都能顺畅访问与协作,社区建设进一步推进。
在这里插入图片描述

四、难关与成长:从内存泄漏到动态材质

1、内存泄漏的破冰之战

2022年3月左右开发“AR + GIS SDK”时,我们发现一个致命问题:

3D模型多次加载与释放,会导致内存泄漏,最终崩溃。
在这里插入图片描述

我反复比对日志、查阅源码,最终通过社区开发者 steven-gao 的一段代码找到了突破口。

以下是问题解决后,内存正常释放的监控截图

这项修复被我合入 Sceneform‑EQR 本地库,在社区伙伴遇到类似问题时,我也积极帮助。 Issue#424

前车之覆,后车之鉴。这是我从“使用者”转变为“参与者”的分水岭。

2、材质探索:复刻 AR 涂鸦的全过程

2023 年底,一位朋友拿来三星手机,展示了其 AR 涂鸦功能:“你能实现吗?”

功能包括:

  • 文本与图片的涂鸦;
  • 3D 自由线条绘制;
  • 流动、透明、呼吸等视觉材质。

我查阅 Filament 的材质文档,使用 matc 工具自编 .mat 文件:

  • 支持动态图、视频纹理注入;
  • 搭配 Sceneform 节点系统,实现交互绘制;
  • 自研材质支持透明通道、UV 位移、实时变色;

这项功能虽未正式商用,但成为我深入理解 Filament 材质使用流程的重要跳板。
👉 【Sceneform-EQR】在安卓中使用filament(sceneform)材质(一)
👉 【Sceneform-EQR】在安卓中使用filament(sceneform)材质(二)

部分效果图如下:

在这里插入图片描述


在这里插入图片描述

3、OST AR 眼镜项目:眼镜上的 Launcher 实战

在这里插入图片描述

2023年底,在深圳的FBEC会上,认识的新朋友希望用原生方式实现 眼镜 Launcher 应用

我发现 Sceneform‑EQR 具备极佳的适配潜力:

  • 原生 AR 渲染体验;
  • 支持 ARCore / AREngine 双平台统一;
  • 适配单双屏、XR 显示模式;

最终成功打造出一个可部署到 AR 眼镜的 Launcher 原型。
👉 文档:【Sceneform-EQR】使用EQ-Renderer实现AR桌面

支持ARCore的平板上显示效果:

在这里插入图片描述


眼镜端左右双屏显示效果:

在这里插入图片描述

五、项目现状:生态建设持续进化中

1. 项目地址

2. 项目结构

  • Eq‑Renderer 渲染库:
    • Android/eq‑renderer:主要源码;
  • 示例工程 SampleProj/app:Demo 程序;
  • Maven 本地依赖发布:
maven { allowInsecureProtocol true url "http://repo.eqgis.cn" } implementation "com.eqgis:eq‑renderer:1.0.9" 

3. 核心功能模块

  • 场景加载:支持 glTF 模型加载(普通场景、AR/VR 场景均可)(github.com);
  • 动画支持:封装 ModelAnimation,自动播放、设置时长、循环,接入 FilamentAnimator;
  • XR 支持:支持AR、VR、普通3D场景。集成 ARCore、AREngine、ORB‑SLAM3,支持场景间一键切换;
  • 背景扩展:支持透明背景、图片背景、视频背景,特点是灵活配置、流程简洁 (blog.ZEEKLOG.net);
  • 材质扩展:调用 matc 生成材质,实现呼吸、流动纹理、视频贴图等;
  • 手势交互:单指旋转、双指平移/缩放、点击事件等基本场景交互内置;(blog.ZEEKLOG.net);

4. 核心功能截图

  • 案例:AR桌面

通过手势控制模型(单指旋转、双指平移、双指缩放)

在这里插入图片描述

手势点击交互

在这里插入图片描述

支持GLTF模型动画

在这里插入图片描述

在AR场景加载GLTF格式的模型

在这里插入图片描述

在普通3d场景加载GLTF格式的模型

在这里插入图片描述
通过渲染安卓原生View实现
  • 支持双屏显示,常用于XR眼镜
曾用于团队定制的的AR眼镜,实现原生安卓Launcher(支持3DOF|6DOF切换)
  • 案例:AR涂鸦(自定义纹理、流动纹理、视频纹理、移位贴图)
呼吸效果,通过Filament的matc工具编译自定义材质文件

流动纹理,使用视频资源作为纹理贴图

六、写在最后:开源是信仰,更是修行

开源的起点,是热爱;中途,是孤独;坚持,是信仰。

从谷歌 Sceneform 被弃,到我多次凌晨提交代码。
从一人维护,到今日支持多设备适配与社区反馈。

Sceneform‑EQR 不只是一个技术项目,
它也是我技术成长、自我构建、走向开源世界的旅程。

“用不用在你,做与不做在我。”

这句话,我写给自己,也写给每一个仍在热爱技术的你。

愿每一个在深夜为 PR 苦战的人,
都能看到属于自己的光,也成为别人的光。


如果你也有想法、有热情,欢迎加入共建。

📫 交流地址:GitCode Issues


EQ-雪梨蛋花汤


Read more

GitHub 上刚开源的 AI 炒股平台,支持大 A、美股。

在 GitHub 上闲逛的时候,发现一个刚开源木多长时间的金融 AI 项目:ValueCell。 这是一个多 Agent 平台,专为金融投资设计的。 对 AI 和金融都感兴趣的读者,肯定对它的理念很感兴趣:通过多个 AI 智能体协作,帮助用户管理投资组合,简直像是拥有了一支 AI 投资团队。 核心特性 🤖 多代理系统:多个 AI 智能体分工处理市场分析、情感分析等任务 🔗 灵活集成:支持OpenRouter、OpenAI等多种LLM提供商 🌐 市场覆盖广:涵盖美股、加密货币、港股、A股等多个市场 👥 社区驱动:由全球开发者共同维护和增强功能 ⚡ 一键部署:提供快速启动脚本,轻松上手 💼 金融专注:专为投资组合管理和金融决策设计 01 项目简介 ValueCell 是一个基于 Python 的开源平台,采用多智能体架构,

By Ne0inhk
【2026 最新】玩转 Obsidian 简约美化 + 插件推荐 + Git 多端同步全流程教程

【2026 最新】玩转 Obsidian 简约美化 + 插件推荐 + Git 多端同步全流程教程

前言 这篇文章分享我个人在 Windows 上把 Obsidian 打造成“简约但好用”的一套方案:主题美化、常用配置、插件推荐,以及用 Git 实现多端同步。 一、下载安装 Obsidian 下载安装可以查看我的这篇文章: 【2025 最新】最好用必备笔记软件 Obsidian 的下载安装与使用教程-ZEEKLOG博客https://blog.ZEEKLOG.net/2301_80035882/article/details/145573354?sharetype=blogdetail&sharerId=145573354&sharerefer=PC&sharesource=2301_80035882&spm=1011.2480.3001.8118 二、

By Ne0inhk
我做了一个本地AI搜索工具,今天正式开源了!

我做了一个本地AI搜索工具,今天正式开源了!

前言 花了一段时间,我终于把小遥搜索 XiaoyaoSearch做出来了。 这是一个支持语音、文本、图片多模态输入的本地AI搜索桌面应用。最特别的是,它100%通过Vibe Coding(AI辅助编程)实现,从零开始,所有源码、设计文档、开发经验,今天全部开源。 为什么要做这个工具? 作为知识工作者,我经常遇到这些痛点: * 文件太多找不到:电脑里存了成千上万个文档、图片、音视频,想找个特定内容翻半天 * 搜索不够智能:系统自带的搜索只能匹配文件名,搜不到文件内容 * 隐私安全担忧:很多搜索工具要上传数据到云端,不太放心 * AI工具太复杂:想用AI提升效率,但不会配置,门槛太高 所以我就想:能不能做一个本地运行的、支持多种输入方式的AI搜索工具? 小遥搜索是什么? 简单来说,它是一个本地AI搜索桌面应用,核心特点: 🎤 多模态输入 * 语音搜索:点一下录音,说出你要找的内容,30秒内语音自动转文字搜索 * 文本搜索:输入关键词,

By Ne0inhk
猫头虎开源AI分享|基于大模型和RAG的一款智能text2sql问答系统:SQLBot(SQL-RAG-QABot),可以帮你用自然语言查询数据库

猫头虎开源AI分享|基于大模型和RAG的一款智能text2sql问答系统:SQLBot(SQL-RAG-QABot),可以帮你用自然语言查询数据库

猫头虎开源AI分享|基于大模型和RAG的一款智能text2sql问答系统:SQLBot(SQL-RAG-QABot),可以帮你用自然语言查询数据库 大家好,我是 猫头虎 🦉🐯。今天要和大家分享一款非常实用的智能问答数据库系统 —— SQLBot(SQL-RAG-QABot)。 它的核心功能就是: 👉 把自然语言问题自动转成数据库能理解的 SQL 语句 👉 再去数据库里执行查询 👉 然后生成图表和分析结果 也就是说,你只需要一句话,就能把数据库里的数据“问”出来。是不是很酷?😎 而且 SQLBot 不仅仅是执行 SQL,还支持进一步的 分析、解释、验证和预测,还能把多个问答过程构造成一个数据看板,真正实现数据驱动的智能交互。 更重要的是,它 开箱即用:配置模型和数据源即可上手。还支持快速嵌入第三方业务系统,或者作为组件被 n8n、MaxKB、Dify、Coze 等 AI 平台调用。 猫头虎 fork 的 GitHub

By Ne0inhk