# ArkGraphics 3D简介

ArkGraphics 3D（方舟3D图形）基于轻量级的3D引擎以及渲染管线为开发者提供基础3D场景绘制能力，供开发者便捷、高效地构建3D场景并完成渲染。

ArkGraphics 3D以自定义场景模式为核心能力，支持开发者自行构建和管理Scene、Camera、Light等节点，从而对3D场景的渲染效果与交互行为进行完全控制。同时，为了便于快速预览和展示模型，也提供自动场景模式，允许开发者直接加载glTF（.gltf文件和.glb文件）模型，由框架自动创建基础相机、光源及交互控制。

## 功能介绍

* 提供加载并解析标准[glTF](https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html)（GL Transmission Format）模型（.gltf文件和.glb文件）的能力，同时支持使用[MeshOpt](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_meshopt_compression/README.md)压缩，输入带有EXT_meshopt_compression扩展描述的glTF模型。支持开发者将glTF模型文件置于应用文件沙盒中，并通过ArkGraphics 3D提供的异步接口完成模型的加载以及渲染。具体可见[Scene](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene)。
* 提供自定义光源（Light）、相机（Camera）节点以及通用节点（Node）的能力，可支持开发者自定义场景光源、渲染视角等信息，同时支持用户动态地调整场景树结构以及节点属性进而调整3D场景。具体可见[Scene](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene)以及[SceneNode (节点管理)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene-nodes)。
* 提供创建图片（Image）、材质（Material）、环境（Environment）以及自定义着色器（Shader）的能力，支持开发者通过调用ArkGraphics 3D提供的能力来创建3D场景中使用的各种资源，并自定义着色器，完成自定义3D材质渲染。具体可以参见[Scene](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene)以及[SceneResources](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene-resources)。
* 提供控制3D场景动画状态的能力，支持开发者控制动画的开始、暂停、结束、播放到指定位置等操作，同时提供动画开始、结束时的回调函数支持开发者进行逻辑控制。具体可见[SceneResources](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene-resources)。
* 提供基础的3D渲染后处理能力，提供接口支持开发者进行ToneMapping后处理相关控制。具体可见[ScenePostProcessSettings (后处理管理)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-scene-post-process-settings)。

综上，ArkGraphics 3D提供以自定义Scene为核心的3D场景渲染能力，同时通过自动场景模式为模型的快速展示提供便捷入口，满足从简单预览到复杂渲染控制的不同开发需求。

具体接口的使用和参数说明，可见[@ohos.graphics.scene (ArkGraphics 3D模块)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-scene)。

## 框架原理

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/05/v3/qsR339GBSDOIxorwrAkD5g/zh-cn_image_0000002794490975.png?HW-CC-KV=V1&HW-CC-Date=20261015T104515Z&HW-CC-Expire=31536000000&HW-CC-Sign=88656E57F5D602F51B3D44EA1162C2C6613861A42E33E981A556B64C8186327D)

如上图 ArkGraphics 3D接口能力由图形后端、引擎层以及接口层三个关键部分共同组成。

* 图形后端：主要指GPU硬件提供的驱动接口类型，业界通用的主要包含OpenGL ES以及Vulkan两类。引擎层通过下发GPU指令调用这些接口，实现场景的渲染。
* 引擎层：依托Ark Graphics Platform渲染引擎部件提供渲染能力，AGP引擎具有易用性、高画质、可扩展等特性。引擎使用先进的ECS（Entity-Component-System）架构设计，进行模块化封装（如材质定义、后处理特效等），为开发者提供了灵活易用的开发套件。
* 接口层：基于引擎的ECS Framework，通过NAPI层对数据进行组织处理，向开发者暴露简单易用的3D渲染接口，支持开发者使用少量代码完成3D场景的开发。

## 约束限制

使用ArkGraphics 3D模块需要硬件设备支持OpenGL ES 3.2以上或者Vulkan 1.0以上的GPU驱动。

## 模拟器支持情况

本Kit暂不支持模拟器。

