关于VUE中使用three.js的一些报错

article/2025/10/8 21:11:45

如果你还不会three.js的基础运用知识,可以看一下我的上一篇文章。

以下是我学习three.js所踩的一些坑,所以发出来希望能避免大家重蹈覆辙 ,拒绝踩坑!

目录

一、加载gltf三维模型时,报错404

其实是因为gltf格式文件默认是在根目录的public文件下进行读取

 二、引入OrbitControls、GLTFLoader报错,提示路径不对,文件找不到

我安装的版本号是一致的,但是内部的源代码有一点点不一样,我新建的测试项目,采用的官方最新的引入方式,也就是将three/addons/loaders 替换了老版本的three/examples/jsm/loaders目录


一、加载gltf三维模型时,报错404

 看了官方文档并没有说明关于gltf文件路径的问题,在网上也查询了很多,解决方法五花八门但是一个有用的都没有。有的说安装依赖包,有的说修改vue.config.js,有人说采用import引入等等之类的,但是均无作用。

其实是因为gltf格式文件默认是在根目录的public文件下进行读取

如果还是报错,可以看下这个gltf模型是否没有适配的bin文件,有些.gltf文件是需要和.bin文件相辅相成的 。

如果是从资源网站下载的,不光需要.gltf模型文件.bin文件,甚至还可能需要放贴图的文件夹,里面放了一些模型所需要的一些贴图,如果没有文件夹中的贴图也能渲染出来,但是因为没有贴图图片,会丢失模型上本应该有的外观。

比如我下图中的 textures 文件夹和.bin文件

 下面是在组件中引用gltf格式的三维模型

 二、引入OrbitControls、GLTFLoader报错,提示路径不对,文件找不到

下面这张图是官方提供的引入路径,也可以说是标准引入路径,我在新建测试的项目中使用这种引入,是没有任何问题的。

测试没问题后,便依葫芦画瓢,将这整个组件搬到公司项目中,结果公司项目的控制台竟然报错!

官方提供的这种引入路径在我这个项目里面无法使用!  当时让我挺费解的......

结果在网上查阅无果,我想既然是因为路径报错,那么就仔细检查整个文件结构吧

于是便在node_modules文件夹中搜索three这个依赖包,好家伙,还真让我找到了问题所在!

我安装的版本号是一致的,但是内部的源代码有一点点不一样,我新建的测试项目,采用的官方最新的引入方式,也就是将three/addons/loaders 替换了老版本的three/examples/jsm/loaders目录

而我的公司项目并没有改写,采用这种方式进行引入,所以只能使用老版本的绝对路径引入

 

 


http://chatgpt.dhexx.cn/article/43EsctgE.shtml

相关文章

threeJs 封装DRACOLoader加载

项目使用到3D模型加载渲染,故初学习了解之, 简单封装 代码如下 import * as THREE from "three"; import {OrbitControls} from "three/examples/jsm/controls/OrbitControls"; import {ShaderPass} from "three/examples/jsm/…

jsjsjsjs

length 用来获取字符串的长度 split(’ 分隔符’)用来将字符串拆分成数组 substring(需要截取的第一个字符的索引[,结束的索引号]) startsWith检测是否以某字符开头 endsWith检测是否以某字符结尾 函数 全局作用域:声明在全局的变量或者不使用var声明的变量在整个…

Three.js--》Gui.js库的使用讲解

目录 Gui.js库基本使用 使用three自带gui库实现基本操作 gui库实现下拉菜单和单选框 gui库分组方法实现 使用dat.gui第三方库 Gui.js库基本使用 gui.js说白了就是一个前端js库,对HTML、CSS和JavaScript进行了封装,学习开发3d技术时借助该库可以快速…

JSM的topic和queue的区别

在JMS(Java消息服务)中,Topic实现publish和subscribe语义。一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个 subscriber(电脑词汇中解释为“用户“)将接收到消息的一个拷贝。但是…

小程序版 Three.js 框架下载及目录配置

1.库文件说明 由于微信官方提供的threejs适配库已经很久没有更新,而且开发者普遍反映使用起来很难用。 我这里分享的是独立的库文件,不需要npm安装,下载后将库文件放到项目中即可使用。 2.下载后的压缩包文件 3.解压后的文件夹结构 4.文件…

webpack使用Ammo.js - 在react中使用Ammo.js

真实麻烦啊 [我的项目仓库 Next.js项目 仅供参考](https://gitee.com/honbingitee/three-template-next.js/tree/feature%2Fphysics/)本文展示使用ammo.wasm.js 结合ammo.wasm.wasm的wasm版本使用方法1. 配置webpack2. 导出Ammo 修改ammo.wasm.js文件3. 删除语句 通过查找 this…

Vue里面使用threeJS 的 OrbitControls报错问题

vue使用 OrbitControls 首先需要按需引入 1、执行 npm install three --save-dev npm install three --save-dev 2 按需引入 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js; 3 使用鼠标控制器 /*** 创建渲染…

JSM 2019 | 数据驱动在滴滴,详解智能出行时代的统计思维

桔妹导读:当地时间7月27日至8月1日,统计学领域顶级学术会议 JSM(Joint Statistical Meetings)在美国丹佛成功举行。丹佛是美国科罗拉多州的首府和最大城市,紧靠景色秀丽的落基山,气候宜人。平均海拔1610米&…

JM

第3章 JMX-MBean的HelloWorld实例 3.1 前言 Boss Connecter这个项目用到的技术还真够多的,这一章是要用到的JMX技术。什么是JMX?在一篇网文中是这样说的:“JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套…

Three.js--》实现3d圣诞贺卡展示模型

目录 项目搭建 初始化three.js基础代码 加载环境模型 设置环境纹理 添加水面并设置阴影效果 实现幽灵小球的运动 实现相机切换和文字切屏 实现漫天星星和爱心样式 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目…

Three.js 点击模型,高亮发光模型外轮廓

最近在开发一个功能,在三维场景里有很多模型,需要点击模型,高亮对应的模型,代表选中了该模型。做起来还是稍微麻烦一些的。 具体效果 实现流程 主要的流程还是, Created with Raphal 2.3.0 开始 获取鼠标点 射线碰撞…

Three.js--》实现3d汽车模型展览搭建

目录 项目搭建 初始化three.js基础代码 添加汽车模型展示 动态修改汽车模型 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助…

vue3中使用three.js

现在vue3的项目中,大部分是vitevue3typescriptpinia的技术栈 vue3项目中安装three.js pnpm i types/three three 注意:在package.json中查看他们的版本,如果版本不一致的话,可能导致ts不能识别three这个模块 导入three模块 impor…

three.js学习笔记(十九)——后期处理

介绍 后期处理是指在最终图像(渲染)上添加效果。人们大多在电影制作中使用这种技术,但我们也可以在WebGL中使用。 后期处理可以是略微改善图像或者产生巨大影响效果。 下面链接是Three.js官方文档中一些关于后期处理的示例: http…

JMM--

数据同步的八大原子操作 1.lock 作用于主内存中的变量,把一个变量标记为一条线程的独占状态。 2.unlock 作用于主内存中的变量,把一个处于锁定状态的变量释放出来,释放后的变量才能被其它线程锁定。 3.read 作用于主内存中的变量&#xff0c…

Three.js--》实现3d小岛模型搭建

目录 项目搭建 初始化three.js基础代码 设置环境背景 设置水面样式 添加天空小岛 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还…

JMS简介

jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体…

java jsm_JSM 基础

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多…

JSM

消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer&am…

【HLL】使用 HyperLogLog 去重案例

1.概述 HyperLogLog一个常用的场景就是统计网站的UV。 ##基数 简单来说,基数(cardinality,也译作势),是指一个集合(这里的集合允许存在重复元素)中不同元素的个数。例如看下面的集合: {1,2,3,4,5,2,3,9,7} 这个集合有9个元素,但是2和3各出现了两次,因此不重复的元素…