|
@@ -1,5 +1,4 @@
|
|
|
import * as THREE from 'three'; //导入整个 three.js核心库
|
|
|
-import {FBXLoader} from 'three/examples/jsm/loaders/FBXLoader';
|
|
|
import {OrbitControls} from 'three/examples/jsm/controls/OrbitControls'; //导入控制器模块,轨道控制器
|
|
|
import {CSS3DRenderer, CSS3DSprite} from 'three/examples/jsm/renderers/CSS3DRenderer.js';
|
|
|
import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader.js'
|
|
@@ -162,7 +161,7 @@ class renderModel {
|
|
|
onMouseClick(event) {
|
|
|
// 计算鼠标在标准化设备坐标中的位置 (-1 to +1)
|
|
|
this.mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
|
|
|
- this.mouse.y = - (event.clientY / window.innerHeight) * 2 + 1;
|
|
|
+ this.mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
|
|
|
|
|
|
// 更新射线
|
|
|
this.raycaster.setFromCamera(this.mouse, this.camera);
|
|
@@ -385,7 +384,7 @@ class renderModel {
|
|
|
this.camera.lookAt(0, 0, 0);
|
|
|
// 将模型添加到场景中去
|
|
|
this.scene.add(this.model);
|
|
|
- // 高亮收集的对象
|
|
|
+ // 高亮收集的对象
|
|
|
if (selectedObjects.length > 0) {
|
|
|
this.outlineObj(selectedObjects);
|
|
|
}
|
|
@@ -393,16 +392,17 @@ class renderModel {
|
|
|
}
|
|
|
|
|
|
setFBXModel() {
|
|
|
- var fbxLoader = new FBXLoader();
|
|
|
- fbxLoader.load('/models/model2.FBX', object => {
|
|
|
- this.calcMeshCenter(object);
|
|
|
- this.model = object;
|
|
|
- object.traverse(function (child) {
|
|
|
+ var fbxLoader = new GLTFLoader();
|
|
|
+ fbxLoader.load('/models/model-road-pv.glb', object => {
|
|
|
+ this.calcMeshCenter(object.scene);
|
|
|
+ this.model = object.scene;
|
|
|
+ object.scene.traverse(function (child) {
|
|
|
if (child.isMesh) {
|
|
|
child.material.emissive = child.material.color;
|
|
|
child.material.emissiveMap = child.material.map;
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
// 设置相机位置
|
|
|
this.camera.position.set(-20, -652, 500);
|
|
|
this.controls.target.set(-20, -20, 0);
|