vue中使用three.js导入外部3D模型

本文介绍了在Vue项目中使用three.js、OBJLoader和MTLLoader加载外部3D.obj模型,以及解决加载过程中遇到的光照、材质包路径和模型大小定位问题。并对比了使用three.js与vue-3d-model组件的不同效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司有一个需要用到3D模型的项目,所以就学习了一下,在这里小小的记录一下

下载依赖

npm i three -D
npm i three-obj-mtl-loader -D
npm i three-orbit-controls

导入依赖

import * as THREE from “three”;
import { OBJLoader, MTLLoader } from “three-obj-mtl-loader”;
import { GLTFLoader } from “three/examples/jsm/loaders/GLTFLoader”;
import {DDSLoader} from “three/examples/jsm/loaders/DDSLoader”;
import { CSS2DRenderer, CSS2DObject } from “three-css2drender”;
import { AmbientLight, LightShadow } from “three”;
const OrbitControls = require(“three-orbit-controls”)(THREE);

项目结构
在这里插入图片描述
依赖的版本
在这里插入图片描述
案例代码

这个地方有一个需要注意的位置就是在加载模型的时候的依赖 three-obj-mtl-loader 有所更新需要在node_modules文件夹下找到这个依赖修改index.js文件 修改为这样
在这里插入图片描述
还有一个点需要注意,就是材质包的导入路径问题
在这里插入图片描述
还有一个就是模型需要放到项目的根目录下和public下
在这里插入图片描述

<template>
  <div id="container"></div>
</template>
<script>
import * as THREE from "three";
import {
   
    OBJLoader, MTLLoader } from "three-obj-mtl-loader";
import {
   
    GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import {
   
   DDSLoader} from "three/examples/jsm/loaders/DDSLoader";
import {
   
    CSS2DRenderer, CSS2DObject } from "three-css2drender";
import {
   
    AmbientLight, LightShadow } from "three";
const OrbitControls = require("three-orbit-controls")(THREE);
export default {
   
   
  name: "vue-three",
  data() {
   
   
    return
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值