HarmonyOS 鸿蒙Next关于类似iOS SceneKit 3D渲染框架的需求

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next关于类似iOS SceneKit 3D渲染框架的需求

我们App 是一个使用硬件扫描得到当前环境点云,后期上传服务端进行三维重建的 App。 点云是一种三维模型的格式,其中存储了大量渲染用的顶点及其属性,相比其他三位模型,它的顶点数量非常庞大,可能到 2500万个顶点左右的数量。 在移动端上,App 需要展示和操作来自硬件的环境点云。 Android 中我们使用 java 调用 gles 的 api,自己构建和展示三位场景。 iOS 中我们使用系统提供的 SceneKit 来展示点云,相比 Android 有明显的性能和 api 优势。 SceneKit 使用结点 (node) 来描述和操作场景,提供了诸如摄像机、动画等等的高级 api。对于 HarmonyOS,我们想要知道是否会有 SceneKit 类似的 api 和框架简化我们的适配工作? 如果没有的话,对于我们的场景,我们是选择在 ts 层使用 gles 还是在 c++ 层使用 gles 工作更加合适? 另外在双端,由于点云顶点数量巨大,系统都提供了 api 的方式能够减少内存拷贝,直接将内存当作显存用于渲染。这既减少了内存拷贝,也降低了渲染内存要求,HarmonyOS 是否有类似的方式?


更多关于HarmonyOS 鸿蒙Next关于类似iOS SceneKit 3D渲染框架的需求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
看看ArkGraphics 3D是否满足您的需求:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkgraphics3d-overview-V5

1.对于 HarmonyOS,我们想要知道是否会有 SceneKit 类似的 api 和框架简化我们的适配工作?

鸿蒙这边目前没有使用裸数据来绘制3D物体的接口。

2.如果没有的话,对于我们的场景,我们是选择在 ts 层使用 gles 还是在 c++ 层使用 gles 工作更加合适?

c++ 层使用 gles 工作更加合适

3.另外在双端,由于点云顶点数量巨大,系统都提供了 api 的方式能够减少内存拷贝,直接将内存当作显存用于渲染。这既减少了内存拷贝,也降低了渲染内存要求,HarmonyOS 是否有类似的方式?

使用如下接口可以创建和使用buffer,使得CPU和gpu直接共享数据OH_NativeImage_Create、OH_NativeImage_AcquireNativeWindow、OH_NativeImage_UpdateSurfaceImage

更多关于HarmonyOS 鸿蒙Next关于类似iOS SceneKit 3D渲染框架的需求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next系统确实提供了强大的3D渲染能力,以满足开发者对类似iOS SceneKit框架的需求。

鸿蒙Next系统通过内置的ArkGraphics 3D(方舟3D图形服务)来支持应用的3D渲染和图形处理。ArkGraphics 3D基于轻量级的3D引擎及渲染管线,支持加载并解析glTF模型文件,开发者只需将模型文件置于应用文件沙盒中,通过其提供的异步接口即可完成模型的加载和渲染。此外,ArkGraphics 3D还提供了自定义灯光、相机节点以及通用节点的能力,使开发者能够自定义场景灯光、渲染视角等信息,并动态地调整场景树结构及节点属性。

对于开发者而言,鸿蒙Next系统还推荐使用ArkTS和WebGL进行3D模型的渲染与展示。ArkTS提供了丰富的UI组件和动画处理能力,而WebGL则用于实现高效的3D图形渲染。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部