最近公司有一个需要用到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