THREE.js

作者: 誰在花里胡哨 | 来源:发表于2020-06-08 11:12 被阅读0次

🎈本篇文章主要针对小白在使用threejs中所遇到的问题,因为我就是小白,接下来会和大家一起慢慢成长。

🎈推荐几个学习的地址:
🚩TRHEE.js中文网🚩
🚩TRHEE.js 哔哩哔哩学习视频🚩
🚩TRHEE.js 官方地址🚩
🚩TRHEE.js GitHub地址🚩

🎈在.html 文件中主要是通过引用threejs(点击下载three.js),若是想使用 OrbitControlsGLTFLoader这些,可以单独到 threejs GitHub上进行下载并引入
也可以直接引用下面这个地址

<script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script>

其它相关资源的引用可去这里进行对应的引用,点我查看

🎈下面主要介绍 vue 在引入 threejs 中遇到的问题:
1.组件怎么引用,这里的 OrbitControls 这些不能直接引入,需要进行一些操作后才能引入 点击查看如何引入
因为我用的是 vue-cli3.0,所以需要创建一个 vue.config.js,引入后就不会报错了 。<点击查看 vue.config.js的相关配置>
vue.config.js 配置

const ThreeExamples = require('import-three-examples')
 // 第三方插件配置
    pluginOptions: {
        // ...
        ...ThreeExamples
    }

首先 npm install --s three
组件内引用

import * as THREE from "three";

代码如下:

<template>
  <div>
    <div id="container"></div>
  </div>
</template>

<script>
import * as THREE from "three";
import {OrbitControls} from 'three/examples/jsm/controls/OrbitControls.js';
export default {
  data() {
    return {
      camera: null,
      scene: null,
      renderer: null,
      mesh: null,
      controls:null
    };
  },
  mounted() {
    this.init();
    this.animate();
  },
  methods: {
    //初始化
    init: function() {
      //  创建场景对象Scene
      this.scene = new THREE.Scene();

      //网格模型添加到场景中
      let geometry = new THREE.BoxGeometry(0.2, 0.2, 0.2);
      let material = new THREE.MeshNormalMaterial({
        color: "white"
      });
      this.mesh = new THREE.Mesh(geometry, material);
      this.scene.add(this.mesh);

      /**
       * 相机设置
       */
      let container = document.getElementById("container");
      this.camera = new THREE.PerspectiveCamera(
        70,
        container.clientWidth / container.clientHeight,
        0.01,
        10
      );
      this.camera.position.z = 1;

      /**
       * 创建渲染器对象
       */
      this.renderer = new THREE.WebGLRenderer({ antialias: true });
      this.renderer.setSize(container.clientWidth, container.clientHeight);
      container.appendChild(this.renderer.domElement);

       //创建控件对象
      this.controls = new OrbitControls(this.camera, 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);
    }
  }
};
</script>

<style>
#container {
  position: absolute;
  width: 100%;
  height: 100%;
}
</style>

相关文章

  • THREE.js

    ?本篇文章主要针对小白在使用threejs中所遇到的问题,因为我就是小白,接下来会和大家一起慢慢成长。 ?推荐几个...

  • vue2.0项目中引入sass、less

    一、vue2.0项目中引入sass预编译 (1)安装依赖 vue项目中想要使用sass,需要安装上node-sas...

  • 引入ThreeJS模块并使用CanvasRenderer和Pro

    环境: react webpack 2 Three.js r91 问题描述: 在项目中使用import引入Thre...

  • vue项目中引入星空特效

    vue项目中引入星空特效 展示 安装插件 在main.js中引入插件 在项目中使用 参数意义 遇到的问题 引入之后...

  • electron-webpack-vue中使用v-emoji-p

    安装v-emoji-picker 引入组件 全局引入 -局部引入 使用组件 在一般的vue项目中直接使用就可以,但...

  • three.js 实现3D雨落场景--yyn日记

    本文主要介绍使用three.js 实现3D雨落场景废话不多说,先上图 (去看效果) app.vue页面 引入 并使...

  • vue+three.js开发

    Three.js Examples在vue-cli3中使用three.js的OBJLoader和MTLLoader...

  • vue学习笔记

    1.router使用方法: step1项目引入: import Vue from 'vue'; impor...

  • VUEX

    安装 HTML 中使用 script 标签引入 vue项目中使用 npm 下载安装(需要安装 Node 环境)//...

  • vue引入swiper vue使用swiper vue脚手架

    vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件 ...

网友评论

    本文标题:THREE.js

    本文链接:https://www.haomeiwen.com/subject/vxcltktx.html