Blender导出three.js模型.GLB或.GLTF数据,three.js引入其模型.GLB或.GLTF数据。
建议使用glTF(GL传输格式)
Blender安装
安装包下载地址:https://www.blender.org/download/
建模并导出.gltf数据
文件 > 导出 > glTF > 位置+命名+格式 > 导出
查看模型
Blender软件等,
网站glTF Viewer:https://gltf-viewer.donmccurdy.com/
three.js导入模型
注意:根据模型的材质判断是否需要灯光,有些模型需要反射才可见。
引入GLTFLoader
GLTFLoader模块用于导入外部GLTF模型
下载安装imports-loader and exports-loader
用于向一个模块的作用域内注入变量,以及从模块中导出变量。
1 | npm install imports-loader exports-loader --save-dev |
配置webpack.base.conf.js文件
在其module中的rules[]中添加:
1 | { |
引入GLTFLoader
import { GLTFLoader } from ‘three/examples/jsm/loaders/GLTFLoader’
同理引入OrbitControls
OrbitControls模块用于场景控制
配置webpack.base.conf.js文件
1 | { |
引入OrbitControls
import { OrbitControls } from ‘three/examples/jsm/controls/OrbitControls’
若程序找不到GLTFLoader、OrbitControls,则删除webpack.base.conf.js的相应配置,只要实现文件的直接引入即可
若没有three/examples,则下载安装
1 | cnpm i import-three-examples --save-dev |
导入外部模型
引入OrbitControls使用,直接new
this.controls = new OrbitControls(this.camera, this.renderer.domElement)
GLTFLoader使用,直接new
let loader = new GLTFLoader()
导入外部模型
一定定义let self = this,直接使用this.scene不行。
若使用webpack打包,glb模型一定放static文件夹或者public文件夹下。
1 | let self = this |
Vue引入外部模型code
1 | <template> |