Three.js在Vue项目中引入外部模型,报404错误

博客作者在开发过程中遇到模型加载失败的问题,原因是模型文件放置位置不正确。解决方法是将模型文件放入public目录下,并确保引用路径无误。通过console.log确认模型已成功解析。

当时查了很多原因,最后发现是因为模型文件放错位置了

 当时就报了这样的错误!!!

解决方法:

创建文件,将模型文件放入,然后文件一定要放入public下面,然后使用时注意引入的路径!!!

 

 然后console.log(obj)查看模型以及被解析出来了

 

 

### 三级标题:Vue.js 项目中使用 Three.js 加载和渲染外部 3D 模型Vue.js 项目中集成 Three.js 并加载外部 3D 模型,可以通过以下方式实现。首先确保已经安装了 `three` 及其相关的依赖项,并且将模型文件放置在合适的目录中以供访问。 #### 安装依赖 在开始之前,需要通过 npm 或 yarn 安装 `three` 库以及用于加载特定格式模型的加载器。例如: ```bash npm install three npm install three/examples/jsm/loaders/GLTFLoader ``` #### 创建 Three.js 场景 在 Vue 组件中创建一个基本的 Three.js 场景,包括相机、渲染器和场景对象。同时,设置好用于显示 3D 内容的 DOM 容器。 ```vue <template> <div ref="container" class="scene-container"></div> </template> <script> import * as THREE from 'three'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; export default { mounted() { this.initThree(); }, methods: { initThree() { const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); this.$refs.container.appendChild(renderer.domElement); // 添加光源 const light = new THREE.AmbientLight(0xffffff, 1); scene.add(light); // 设置相机位置 camera.position.z = 5; // 加载模型 const loader = new GLTFLoader(); loader.load('/models/scene.gltf', (gltf) => { scene.add(gltf.scene); animate(); }, undefined, (error) => { console.error('An error happened while loading the model:', error); }); // 渲染循环 function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } } } } </script> <style scoped> .scene-container { width: 100%; height: 100vh; } </style> ``` #### 放置模型文件 为了确保模型能够被正确加载,应将模型文件(如 `.gltf` 文件)放置在项目的 `public` 目录下对应的子目录中,比如 `public/models/`。这样,在构建时这些文件会被直接复制到输出目录,并可通过根路径 `/models/scene.gltf` 访问[^1]。 #### 加载不同类型的模型 Three.js 提供了多种加载器来支持不同的 3D 模型格式,包括但不限于: - **GLTF** 格式使用 `GLTFLoader` - **OBJ** 格式使用 `OBJLoader` - **STL** 格式使用 `STLLoader` 每种加载器的使用方法大致相同,主要区别在于导入的模块名称和实例化的方式。根据实际需求选择正确的加载器,并调整相应的路径配置即可。 #### 额外注意事项 对于某些特殊格式的文件,如 `.pcd` 点云数据文件,则可能需要额外的解析库或自定义解析逻辑,因为 Three.js 原生并不直接支持这类文件的加载。在这种情况下,可以考虑引入第三方库或者自行编写解析代码来处理此类文件[^3]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值