---
title: "使用 3D"
description: "使用 3D"
language: "zh"
canonical: "https://g6.antv.antgroup.com/zh/manual/further-reading/3d/"
version: "5.1.1"
---

## 安装依赖

在使用 3D 能力之前，请首先安装 3D 扩展包：

```bash
npm install @antv/g6-extension-3d --save
```

该扩展包导出了以下内容：

- renderer：3D 渲染器

**元素**

- Capsule：胶囊节点
- Cone：圆锥节点
- Cube：立方体节点
- Cylinder：圆柱节点
- Sphere：球体节点
- Torus：圆环节点
- Line3D：3D 线

**布局**

- D3Force3DLayout：3D 力导向布局

**交互**

- DragCanvas3D：拖拽画布
- ObserveCanvas3D：观察画布
- RollCanvas3D：旋转画布
- ZoomCanvas3D：缩放画布

**插件**

- Light：光源

## 注册扩展

其中下列扩展是必须的：

- renderer
- 至少一个 3D 节点
- Line3D
- Light

> renderer 无需注册，实例化 Graph 过程中传入即可。

使用如下方式进行注册：

```ts
import { register, ExtensionCategory } from '@antv/g6';
import { Sphere, Line3D, Light } from '@antv/g6-extension-3d';

register(ExtensionCategory.NODE, 'sphere', Sphere);
register(ExtensionCategory.EDGE, 'line3d', Line3D);
register(ExtensionCategory.PLUGIN, 'light', Light);
```

## 创建 3D 图

完成上述步骤后，即可创建 3D 图：

```ts
import { Graph } from '@antv/g6';
import { renderer } from '@antv/g6-extension-3d';

const graph = new Graph({
  // ... 其他配置
  // 使用 3D 渲染器
  renderer,
  node: {
    type: 'sphere', // 使用 3D 节点
    style: {
      materialType: 'phong', // 使用 Phong 材质
    },
  },
  edge: {
    type: 'line3d', // 使用 3D 边
  },
  plugins: [
    {
      type: 'light', // 添加光源
      // 配置方向光
      directional: {
        direction: [0, 0, 1],
      },
    },
  ],
});

graph.render();
```

你可以参考以下示例：

- [精简太阳系](/zh/examples/feature/default/lite-solar-system/)
- [3D 力导向布局](/zh/examples/layout/force-directed/3d-force/)

## 其他

`@antv/g6` 中内置注册了 `CameraSetting` 插件，可用于配置相机，具体可参考[插件](https://github.com/antvis/G6/blob/v5/packages/g6/src/plugins/camera-setting.ts)。

```typescript
{
  plugins: [
    {
      type: 'camera-setting',
      projectionMode: 'perspective',
      near: 0.1,
      far: 1000,
      fov: 45,
      aspect: 1,
    },
  ];
}
```
