首页 > 其他分享 >vue中加载three.js的gltf模型

vue中加载three.js的gltf模型

时间:2022-10-25 17:12:28浏览次数:58  
标签:vue container three js var new THREE gltf

一、开始引入three.js相关插件。首先利用淘宝镜像,操作命令为:

 cnpm install three     //npm install three也行

二、three.js中所有的控件插件,都可以在node_modules下面的three里面找到

 

 

 

三、安装好以后,在页面中引入three.js并使用;在所调用页面引入的代码为

import * as THREE from "three";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";

 

mounted() {
    this.init();
    this.render();
  },
methods:{ // 模型初始化 init() { let container = document.getElementById("container"); // 设置相机 this.camera = new THREE.PerspectiveCamera( 70, container.clientWidth / container.clientHeight, 0.1, 10 ); this.camera.position.z = 2; this.scene = new THREE.Scene(); let self = this; // 加载模型 var loader = new GLTFLoader().setPath("/static/dalou/"); loader.load("lou_danti.gltf", function(gltf) { var mesh = gltf.scene.children[0]; mesh.scale.set(10, 10, 10); self.scene.add(mesh); // 将模型引入three console.log(gltf, "gltf"); // 调用动画 self.mixer = new THREE.AnimationMixer(mesh); var action = self.mixer.clipAction(gltf.animations[0]); action .stop() .setDuration(4) .play(); }); this.scene.add(loader); /* 添加光源 */ //点光源 var point = new THREE.PointLight(0xffffff); point.position.set(400, 200, 300); //点光源位置 this.scene.add(point); //点光源添加到场景中 //环境光 var ambient = new THREE.AmbientLight(0x999999); this.scene.add(ambient); /** * 相机设置 */ var width = window.innerWidth; //窗口宽度 var height = window.innerHeight; //窗口高度 var k = width / height; //窗口宽高比 var s = 150; //三维场景显示范围控制系数,系数越大,显示的范围越大 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); }, render() { requestAnimationFrame(this.render); this.renderer.render(this.scene, this.camera); //执行渲染操作 var time = this.clock.getDelta(); if (this.mixer) { this.mixer.update(time); } }
}



原文地址:https://www.cnblogs.com/yaosusu/p/12326064.html

 

标签:vue,container,three,js,var,new,THREE,gltf
From: https://www.cnblogs.com/tianxinya/p/16825507.html

相关文章

  • JS利用window.print()实现网页打印功能
    2.方法二将需要打印的内容用一个大的div包裹,打印时将body的内容替换为该div的内容,调用打印print()方法。 <body>     <inputtype="button"value="打印此页面"......
  • vue和浏览器返回操作一致
    methods:{goBack(){//返回上一页this.$router.go(-1);//关闭当前页面;this.$store.dispatch("tagsView/delView",this.$route);}},moun......
  • Vue实现全选全不选功能
                       注意:script里面的vue.js的引用文件最好自己找个线上的<!doctypehtml><html><head><title>......
  • VUE - Cesium 测量
    VUE-Cesium测量 增加测量类:cesiumUtilMeasure.js/**测距*/letCesiumUtilMeasure={};lethandler=null;letMEA={Entitys:[],};//测量空间直线......
  • Vuex3的状态管理
    一.Vuex是什么Vue全局事件总线Vuex状态管理何时使用Vuex二.纯vue组件案例计算总数案例添加人员案例三.Vuex工作原理和流程第一种工作流程第二种工作流程生活化的Vuex工......
  • Vue要做权限管理该怎么做?控制到按钮级别的权限怎么做
    一、是什么权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配的资源而前端权限归根结底是请求的发起权,请求的发起可能有下面两种形式触发页面加......
  • vue路由导航守卫
    简单来说路由导航守卫就是.可以让我们对用户要跳转的路由做一次检查,符合条件的就放行,不符合条件则强制用户跳转至登录页面,说白了就时路由导航守卫是为了路由跳转之前做的......
  • vue开发整理
    1.先检查项目是否有,接下来输入命令行:npminstall加载依赖包node_modulesnpminstall//下载依赖包命令2.如果安装失败请删除node_modulese文件夹,并清除缓存npm......
  • Node.js安装详细步骤教程(Windows版)
    什么是Node.js?简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeV8引擎的JavaScript运行环境;Node.js使用一个事件驱动、非阻塞式I/O的......
  • python json和pickle
    json和pickle共用方法dumps把任意对象序列化成一个strloads把任意str反序列化成原来数据dump把对象序列化后写入到文件对象中load把文件对象中的内容反序列化jso......