V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
st2udio
V2EX  ›  华为

用 C++做了一个鸿蒙 next 的原生应用-3D 视野

  •  
  •   st2udio · Nov 6, 2024 · 99 views
    This topic created in 539 days ago, the information mentioned may be changed or developed.
    最近体验了下鸿蒙 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;

    欢迎大家下载体验。
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1055 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:43 · PVG 06:43 · LAX 15:43 · JFK 18:43
    ♥ Do have faith in what you're doing.