嘟先生学WebGL 嘟先生学WebGL
首页
Threejs
在线案例
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 方法论
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档

嘟嘟MD

全栈践行者
首页
Threejs
在线案例
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 方法论
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
  • Threejs干货系列

    • 新手上路

      • 原生javascript Threejs模板
      • vue工程和Threejs模板
    • 顶点概念

    • 光源介绍

    • 材质介绍

    • 纹理介绍

    • 常用的辅助功能介绍

    • 常用控制器介绍

    • 常用的几个插件介绍

    • 常用模型文件加载

    • 高级后期渲染

    • 性能优化系列

  • Threejs 疑难杂症

  • Threejs 案例源码

  • Threejs shader系列

  • 其他前端笔记

  • Threejs
  • Threejs干货系列
  • 新手上路
嘟先生
2021-06-28

vue工程和Threejs模板

# 前言

Three.js是一个跨浏览器的脚本,使用JavaScript函数库或API来在网页浏览器中创建和展示动画的三维计算机图形。Three.js使用WebGL。源代码托管在GitHub。

# 正文

下面介绍在Vue.js中集成three.js的步骤。

安装vue-cli脚手架 安装three.js

npm install --save three
1

3.编写使用three.js创建3D场景的Vuejs组件

<template>
  <div id="container"></div>
</template>
<script>
import * as Three from 'three'

export default {
  name: 'Home',
  data () {
    return {
      camera: null,
      scene: null,
      renderer: null,
      mesh: null
    }
  },
  methods: {
    init: function () {
      var container = document.getElementById('container')

      this.camera = new Three.PerspectiveCamera(70, container.clientWidth / container.clientHeight, 0.01, 10)
      this.camera.position.z = 1

      this.scene = new Three.Scene()

      var geometry = new Three.BoxGeometry(0.2, 0.2, 0.2)
      var material = new Three.MeshNormalMaterial()

      this.mesh = new Three.Mesh(geometry, material)
      this.scene.add(this.mesh)

      this.renderer = new Three.WebGLRenderer({ antialias: true })
      this.renderer.setSize(container.clientWidth, container.clientHeight)
      container.appendChild(this.renderer.domElement)
    },
    animate: function () {
      requestAnimationFrame(this.animate)
      this.mesh.rotation.x += 0.01
      this.mesh.rotation.y += 0.02
      this.renderer.render(this.scene, this.camera)
    }
  },
  mounted () {
    this.init()
    this.animate()
  }
}

</script>
<style  rel="stylesheet/scss" lang="scss" scoped>
#container {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#Threejs
原生javascript Threejs模板
Threejs实现酷炫3D地球

← 原生javascript Threejs模板 Threejs实现酷炫3D地球→

最近更新
01
Threejs 3D 酷炫地球在线预览
02
Threejs 3D 动态换肤和拆分
03
Threejs 3D 人体扫描
更多文章>
Theme by Vdoing | Copyright © 2021-2023 闽ICP备17006673号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×