HarmonyOS 鸿蒙Next 我移植了filament到上

HarmonyOS 鸿蒙Next 我移植了filament到上

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;

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


更多关于HarmonyOS 鸿蒙Next 我移植了filament到上的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复
支持

更多关于HarmonyOS 鸿蒙Next 我移植了filament到上的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


支持一手

感谢

针对您提到的HarmonyOS鸿蒙Next系统上移植Filament的问题,这里提供一些可能的注意事项和确认点,以帮助您确保移植过程的顺利进行:

  1. 系统兼容性:确保您的HarmonyOS版本与Filament的兼容性要求相匹配。不同版本的操作系统可能在API、系统库等方面存在差异。

  2. 依赖库:Filament依赖于多个第三方库,如OpenGL、Vulkan等。请确认这些依赖库在HarmonyOS上的可用性和版本兼容性。

  3. 编译配置:检查您的CMakeLists.txt或构建脚本,确保所有必要的编译选项和路径设置正确,特别是针对HarmonyOS特有的编译标志和链接库。

  4. 图形API支持:由于Filament是一个图形渲染引擎,因此请确保HarmonyOS设备或模拟器支持所需的图形API(如Vulkan)。

  5. 测试与调试:在移植完成后,进行全面的测试,包括功能测试、性能测试和兼容性测试,以确保Filament在HarmonyOS上运行稳定且符合预期。

如果以上步骤均确认无误,但问题依旧存在,可能是更深层次的系统或兼容性问题。此时,建议您直接联系官网客服以获取更专业的支持。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部