这是一个创建于 532 天前的主题,其中的信息可能已经有所发展或是发生改变。
最近体验了下鸿蒙 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;
欢迎大家下载体验。