跳至主要內容

快速上手

大约 2 分钟

快速上手

从未了解三维应用开发的前端程序开发人员,一般初次接触三维概念、三维对象、三维数学公式时,往往会显得非常不适应,为了更快地让开发者直接上手,本章主要任务就是带领开发者熟悉三维开发的三个主要步骤:

  1. 依赖库引用;
  2. 初始化配置;
  3. 三维程序逻辑实现。

本节我们将创建一个三维视图,并添加网格和一个三维盒子(Box),步骤如下:

  • 引入样式和依赖脚本文件
  • 准备一个具备宽度和高度的DIV
  • 初始化一个Viewer对象,并设置网格参数
  • 添加一个Box三维盒子

HTML

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    {/* 引入样式和依赖脚本文件 */}
    <link rel="stylesheet" href="./vt/style/vt.css">
    <script src="./vt/libs/three.js"></script>
    <script src="./vt/vt.js"></script>

    {/* 设置DIV高度和宽度 */}
    <style>
        html, body, #container {
            height: 100%;
            margin: 0;
            padding: 0;
        }
    </style>
</head>

<body>
    {/* 准备一个DIV,且设置样式,见style */}
    <div id="container"></div>

    <script>
        {/* 初始化一个Viewer对象 */}
        var viewer = new VT.Viewer({
            container: "container",
            scene: {
                helper: {
                    grid: {
                        visible: true,
                    }
                }
            },
        });

        {/* 创建一个三维盒子 */}
        var box = new VT.Box({
            position: [0, 0.5, 0]
        });

        {/* 添加到场景中 */}
        viewer.scene.add(box);

    </script>
</body>
</html>

上述代码是一个完整的HTML页面,即可实现一个有Box的三维场景。

Vue

Vue组件的实现方式如下,确保sdk在public下

<template>
    <div class="container" id="container3d"></div>
</template>
<script>
import PL from "popoload";

export default {
    name: "Viewer3D",
    mounted() {
        this.loadThing();
    },
    methods: {
        loadThing() {
            PL({
                libs: [
                    './vt/libs/three.min.js',
                    './vt/vt.min.js'
                ],
                styles: [
                    './vt/style/vt.css'
                ],
                loaded: () => {
                    // 加载完成,执行三维程序逻辑
                    this.initViewer();
                }
            });
        },
        initViewer() {
            {/* 初始化一个Viewer对象 */}
            var viewer = new VT.Viewer({
                container: "container3d",
                scene: {
                    helper: {
                        grid: {
                            visible: true,
                        }
                    }
                },
            });

            {/* 创建一个三维盒子 */}
            var box = new VT.Box({
                position: [0, 0.5, 0]
            });

            {/* 添加到场景中 */}
            viewer.scene.add(box);

            // 全局属性挂接
            window.viewer3d = viewer;

            // 上一级组件loaded方法
            this.$emit("loaded", viewer);
        }
    }
}

</script>
<style>
html, body, 
.container {
    height: 100%;
    padding: 0;
    margin: 0;
}
</style>

这样我们就创建了一个有Box的三维场景。

上次编辑于:
贡献者: dashun