V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
st2udio
V2EX  ›  华为

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

  •  
  •   st2udio · 2024 年 11 月 6 日 · 74 次点击
    这是一个创建于 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;

    欢迎大家下载体验。
    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1167 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 23:19 · PVG 07:19 · LAX 16:19 · JFK 19:19
    ♥ Do have faith in what you're doing.