文档管理中心
我的
|

HarmonyOS 5

3D Engine

ArkGraphics 3D

我移植了filament到鸿蒙next上

cke_132.jpeg

最近体验了下鸿蒙 next 的应用开发,是用 ArkTS 和 C++,UI 部分是 ArkTS 完成的,渲染部分是 C++完成的。
应用主要功能就是在手机上预览 3D 模型,目前支持 gltf,glb,fbx,obj,stl,3mf 等格式,后续计划增加更多格式的支持

开发上,因为 ArkTS 层面给出的 3D API 目前有点弱,写起来很不方便,看鸿蒙 next 也支持 NDK ,所以是用了 NDK 开发了渲染侧的内容。

主要是用了 filament 库,然后对 filament 库做了一些适配,filament 底层支持 vulkan ,鸿蒙 next 也支持 vulkan ,主要改动是这样,给 filament 的 vulkan 部分增加 next 的支持,使用 next 提供的 vulkan 头文件。然后按照鸿蒙给的文档,对这个库进行交叉编译。

#define VK_OHOS_surface 1
typedef struct NativeWindow OHNativeWindow;
#define VK_OHOS_SURFACE_SPEC_VERSION 1
#define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface"
typedef VkFlags VkSurfaceCreateFlagsOHOS;
typedef struct VkSurfaceCreateInfoOHOS {
VkStructureType sType;
const void* pNext;
VkSurfaceCreateFlagsOHOS flags;
OHNativeWindow* window;
} VkSurfaceCreateInfoOHOS;

同时参加了华为的激励计划,希望大家可以下载支持一下。

点赞
2
收藏
回复
7
分享
举报
浏览372 发布于2024-11-07 00:30上海
全部评论
最多点赞
最新发布
最早发布
支持一手
1
2楼回复于2024-11-07 01:30 来自广东
  • com****@****aran.com
    感谢
    2024-11-07 03:51 来自江苏
学习了
6楼回复于2025-08-01 14:35 来自河南
求迁移教程
5楼回复于2025-07-28 06:02 来自安徽
求迁移教程
4楼回复于2025-05-13 11:40 来自广东
支持
1
1楼回复于2024-11-07 01:17 来自上海
  • com****@****aran.com
    感谢
    2024-11-07 03:51 来自江苏
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。