返回顶部
首页 > 资讯 > 前端开发 > JavaScript >浅谈将three项目迁移至vue项目遇到的问题
  • 638
分享到

浅谈将three项目迁移至vue项目遇到的问题

2024-04-02 19:04:59 638人浏览 泡泡鱼
摘要

目录通过npm下载的three依赖无法正常使用导入模型的路径出现了问题3D场景渲染后没有进行销毁由于我的3D场景起初是自己为了测试搭建的,所以使用的是html + three,后来将

由于我的3D场景起初是自己为了测试搭建的,所以使用的是html + three,后来将代码迁移到Vue项目的过程中出现了下面的几个问题:

  • 通过npm下载three依赖无法正常使用
  • 导入模型的路径出现了问题,导致模型无法正常渲染
  • 3D场景渲染后没有进行销毁

通过npm下载的three依赖无法正常使用

在原项目中使用的是three相关的js文件,而迁移项目的时候本来准备直接通过npm下载相关依赖进行操作,但是发现下载依赖后照着常规的形式导入相关的控件会报错;

// 例如下面的代码,导入three可以正常创建场景、创建模型
// 但是使用OrbitControls等控件会报错
import * as THREE from 'three'

// 查询资料后有人说是需要单独导入,但是我是使用下面的导入形式从three包中导入相关文件依然会报错
import "three/examples/js/controls/OrbitControls"

当时转而使用直接导入下载好的js文件的形式,将文件放在public目录下,直接在index.html中进行引用,才解决了这个问题。

导入模型的路径出现了问题

一开始我将需要导入的模型文件放在src/assets下面,但是导入模型的方法找不到模型文件,代码如下:

let mtlLoader = new THREE.MTLLoader();
let objLoader = new THREE.OBJLoader();
mtlLoader.setPath(`@/assets/objs/`);
mtlLoader.load("server2.mtl", function(materials) {
  materials.preload();
  objLoader.setMaterials(materials);
  objLoader.setPath(`@/assets/objs/`);
  objLoader.load("server2.obj", function(object) {

  });
});

// 页面直接报错,无法正常渲染

通过查询资料后,有人说要把模型文件放在public/static目录下,修改后导入成功,代码如下:

let mtlLoader = new THREE.MTLLoader();
let objLoader = new THREE.OBJLoader();
mtlLoader.setPath(`/static/objs/all/`);
mtlLoader.load("server2.mtl", function(materials) {
  materials.preload();
  objLoader.setMaterials(materials);
  objLoader.setPath(`/static/objs/all/`);
  objLoader.load("server2.obj", function(object) {

  });
});

但是打包部署之后,3D模型的路径又出现了错误,原因是打包后的文件路径出现了变化,但是设置的路径不会随着打包变化,导致打包和本地运行时需要不同的路径;
因为我们的项目部署后是通过ip访问的,所以我的做法是判断当前的url,区分是本地运行还是线上运行;也可以通过webpack配置根据不同的命令使用不同的路径;

let resourcesUrl = ''; // 通过判断赋予不同的路径

let mtlLoader = new THREE.MTLLoader();
let objLoader = new THREE.OBJLoader();
mtlLoader.setPath(`${resourcesUrl}/static/objs/all/`);
mtlLoader.load("server2.mtl", function(materials) {
  materials.preload();
  objLoader.setMaterials(materials);
  objLoader.setPath(`${resourcesUrl}/static/objs/all/`);
  objLoader.load("server2.obj", function(object) {

  });
});

3D场景渲染后没有进行销毁

在项目中发现频繁的在3D场景的页面和其他页面切换会导致页面卡顿,是由于在切换路由时没有清除相关模型导致大量占用了内存;
所以需要在离开3D场景销毁模型,并且释放相关的变量,例如renderer、scene、camera、controls

scene.remove(mesh); // scene下的模型

scene = null;
camera = null;
controls = null;
renderer.dispose();

到此这篇关于浅谈将three项目迁移至vue项目遇到的问题的文章就介绍到这了,更多相关three项目迁移至vue内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈将three项目迁移至vue项目遇到的问题

本文链接: https://lsjlt.com/news/163197.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈将three项目迁移至vue项目遇到的问题
    目录通过npm下载的three依赖无法正常使用导入模型的路径出现了问题3D场景渲染后没有进行销毁由于我的3D场景起初是自己为了测试搭建的,所以使用的是html + three,后来将...
    99+
    2024-04-02
  • 如何解决将three项目迁移至vue项目遇到的问题
    这篇文章主要介绍了如何解决将three项目迁移至vue项目遇到的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。通过npm下载的three依赖无法正常使用在原项目中使用的是...
    99+
    2023-06-28
  • 将项目从JBOSS 6 迁移到 JBOSS 7所遇到的问题
    以下内容只是以笔记形式记录,以防再次折腾,同时提供一个借鉴: 1、项目中的数据源使用的是JBOSS的JNDI,在6、7两个版本中,配置差别较大,具体配置方法,资料配置较多,我这里不重复说(可参考h...
    99+
    2024-04-02
  • 浅谈vue+vite项目部署会遇到的几个问题
    今天来打包硅谷外卖项目,通过解决项目中遇到的问题来加深对vite打包的理解。 运行yarn build 报错,报[WARNING] Expected identifier but f...
    99+
    2023-05-18
    vue vite 项目部署 vue vite部署
  • 怎么将项目完美迁移到Python3中
    本篇内容主要讲解“怎么将项目完美迁移到Python3中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么将项目完美迁移到Python3中”吧!使用 2to3从几年前开始,Python 在你或许还...
    99+
    2023-06-02
  • vue-cli构建Vue项目遇到的问题有哪些
    小编给大家分享一下vue-cli构建Vue项目遇到的问题有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!问题表象和解决方案1、编译后js、css等相对路径和绝对路径。config/in...
    99+
    2024-04-02
  • 浅谈使用Vue完成移动端apk项目
    目录基本配置入口文件main.jsApp.vue首页头部搜索栏主体我们项目使用的是Vue和Vant组件,详情都可以看官网哦 Vant Vue 完整项目视频链...
    99+
    2024-04-02
  • 怎么将Django项目迁移到linux系统中
    这篇文章主要介绍“怎么将Django项目迁移到linux系统中”,在日常操作中,相信很多人在怎么将Django项目迁移到linux系统中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么将Django项目迁移...
    99+
    2023-07-05
  • 使用还原库将 Django 项目迁移到 Golang
    php小编鱼仔将向您介绍如何使用还原库将Django项目迁移到Golang。迁移项目可能是为了提高性能、扩展能力或者是出于其他技术需求。还原库是一种将现有项目从一种编程语言转换到另一种...
    99+
    2024-02-10
  • 将Django项目迁移到linux系统的详细步骤
    目录Django项目配置修改项目环境以及数据库打包linux系统中的配置1、python3的安装2、第二步就是数据库的配置项目整合与配置总结Django项目配置修改 我们需要把原先的Django项目进行修改才能更好地进行...
    99+
    2023-03-15
    Django项目迁移到linux Django项目迁移 Django项目迁移linux系统
  • springmvc项目使用@Valid+BindingResult遇到的问题
    目录第一步:pom.xml中引入javax.validation和hibernate-validator第二步:创建需要校验的参数bean类这里一定要注意两个问题第三步:写contr...
    99+
    2024-04-02
  • 如何解决vue项目部署上线遇到的问题
    这篇文章将为大家详细讲解有关如何解决vue项目部署上线遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。流程     1.服...
    99+
    2024-04-02
  • vue移动端项目迁移到uniapp,并兼容小程序
    一、视图dom标签的替换 以下标签的替换需要注意css中的选择器也需要跟着替换。 1、div、p、h1~5等等块级元素替换为view标签 h1~5注意字体大小需要调整,具体根据页面大小调整。 2、span、label等等所有内联元素替换为t...
    99+
    2023-08-20
    vue.js uni-app 小程序
  • 浅谈VUE项目打包后运行页面一片白问题
    目录1、说明2、问题说明3、解决3.1、index.js3.2、utils.js3.3、webpack.prod.conf.js4、总结1、说明 我们用VUE搭建一个脚手架后,在ID...
    99+
    2023-01-13
    VUE打包运行页面一片白 VUE打包页面
  • Android项目迁移到AndroidX的方法步骤
    1. 写在前面 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 迁移前请确认所有代码都已提交至代码托管平台...
    99+
    2022-06-06
    方法 Android
  • 基于SpringBoot项目遇到的坑--Date入参问题
    目录SpringBoot Date入参问题1.传输中的Date类型时间不准确2.后台返回的json数据springboot接口入参的一些问题入参绑定入参错误全局异常处理SpringB...
    99+
    2024-04-02
  • 手把手教你将一个旧的大型项目迁移到 Py
    一年半前,我们就决定使用 Python 3 了。我们已经讨论了很长时间,现在是时候使用了!现在这个过程已经结束了,我们已经把生产环境的最后部署都迁移到了 Python 3整个代码库大约有 240 k 行,不包括空行和注解。这是一个基于 We...
    99+
    2023-01-31
    个旧 手把手教你 项目
  • 解决spring boot创建项目遇到配置的问题
    目录spring boot创建项目遇到配置的问题如下图所示需要修改sping运行时读取的地址SpringBoot项目创建及一些常见问题处理1.先创建一个maven项目,确保可以正常使...
    99+
    2024-04-02
  • android studio 3.0 升级项目遇到问题怎么办
    这篇文章主要介绍android studio 3.0 升级项目遇到问题怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Android Studio从3.0版本新增了许多功能,当然首当其冲就是从3.0版本新增了对 ...
    99+
    2023-05-30
    android studio
  • 解决项目vite1.0升级到2.0打包遇到Somechunksarelarger问题
    打包项目过程中遇到警告 (想看结果,可以滑至底部) 输出文件名字/static/vendor.9b5698e4.js 806.03kb / brotli:&nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作