diff --git a/src/components/load3d/Load3DControls.vue b/src/components/load3d/Load3DControls.vue index 746a20f13..a6601d7d0 100644 --- a/src/components/load3d/Load3DControls.vue +++ b/src/components/load3d/Load3DControls.vue @@ -559,6 +559,6 @@ onUnmounted(() => { }) const getCameraIcon = computed(() => { - return props.cameraType === 'perspective' ? 'pi-camera' : 'pi-th-large' + return props.cameraType === 'perspective' ? 'pi-camera' : 'pi-camera' }) diff --git a/src/extensions/core/load3d/CameraManager.ts b/src/extensions/core/load3d/CameraManager.ts index e876102c5..188a85144 100644 --- a/src/extensions/core/load3d/CameraManager.ts +++ b/src/extensions/core/load3d/CameraManager.ts @@ -29,7 +29,7 @@ export class CameraManager implements CameraManagerInterface { } DEFAULT_PERSPECTIVE_CAMERA = { - fov: 75, + fov: 35, aspect: 1 } @@ -99,6 +99,11 @@ export class CameraManager implements CameraManagerInterface { const rotation = oldCamera.rotation.clone() const target = this.controls?.target.clone() || new THREE.Vector3() + const oldZoom = + oldCamera instanceof THREE.OrthographicCamera + ? oldCamera.zoom + : (oldCamera as THREE.PerspectiveCamera).zoom + if (!cameraType) { this.activeCamera = oldCamera === this.perspectiveCamera @@ -118,6 +123,14 @@ export class CameraManager implements CameraManagerInterface { this.activeCamera.position.copy(position) this.activeCamera.rotation.copy(rotation) + if (this.activeCamera instanceof THREE.OrthographicCamera) { + this.activeCamera.zoom = oldZoom + this.activeCamera.updateProjectionMatrix() + } else if (this.activeCamera instanceof THREE.PerspectiveCamera) { + this.activeCamera.zoom = oldZoom + this.activeCamera.updateProjectionMatrix() + } + if (this.controls) { this.controls.object = this.activeCamera this.controls.target.copy(target) diff --git a/src/extensions/core/load3d/Load3DConfiguration.ts b/src/extensions/core/load3d/Load3DConfiguration.ts index 29375da45..11f392fd8 100644 --- a/src/extensions/core/load3d/Load3DConfiguration.ts +++ b/src/extensions/core/load3d/Load3DConfiguration.ts @@ -72,7 +72,7 @@ class Load3DConfiguration { this.load3d.setLightIntensity(lightIntensity) - const fov = this.load3d.loadNodeProperty('FOV', 75) + const fov = this.load3d.loadNodeProperty('FOV', 35) this.load3d.setFOV(fov) diff --git a/src/extensions/core/load3d/ModelManager.ts b/src/extensions/core/load3d/ModelManager.ts index 00189f512..68b4ae0aa 100644 --- a/src/extensions/core/load3d/ModelManager.ts +++ b/src/extensions/core/load3d/ModelManager.ts @@ -152,7 +152,6 @@ export class ModelManager implements ModelManagerInterface { transparent: false, opacity: 1.0 }) - child.geometry.computeVertexNormals() break case 'wireframe': diff --git a/src/extensions/core/load3d/SceneManager.ts b/src/extensions/core/load3d/SceneManager.ts index 805677626..065b0b434 100644 --- a/src/extensions/core/load3d/SceneManager.ts +++ b/src/extensions/core/load3d/SceneManager.ts @@ -32,7 +32,7 @@ export class SceneManager implements SceneManagerInterface { this.getActiveCamera = getActiveCamera this.getControls = getControls - this.gridHelper = new THREE.GridHelper(10, 10) + this.gridHelper = new THREE.GridHelper(20, 20) this.gridHelper.position.set(0, 0, 0) this.scene.add(this.gridHelper)