From 36a6c3e6905bfbb507cb4961d830d84da07f3a58 Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Tue, 20 Aug 2024 15:56:58 +0300 Subject: [PATCH] test ground --- front/src/components/Promo/load_models.vue | 69 +++++++++++----------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/front/src/components/Promo/load_models.vue b/front/src/components/Promo/load_models.vue index 8a55fd1..048d426 100644 --- a/front/src/components/Promo/load_models.vue +++ b/front/src/components/Promo/load_models.vue @@ -131,28 +131,30 @@ const loadModels = async () => { addTexture = await useTexture(tex) } - const mesh = { - color: c.offsetHSL(0, 0.5, -0.33), - displacementScale: envVars.focus * 0.33, - roughness: 100, - side: DoubleSide - } as MeshStandardMaterialParameters - if (envVars.env_displacementmap) { - mesh.displacementMap = addTexture.displacementMap - } else { - mesh.displacementMap = groundTexture.displacementMap + if (!models.value.find(el => el.name == 'ground')) { + const mesh = { + color: c.offsetHSL(0, 0.5, -0.33), + displacementScale: envVars.focus * 0.33, + roughness: 100, + side: DoubleSide + } as MeshStandardMaterialParameters + if (envVars.env_displacementmap) { + mesh.displacementMap = addTexture.displacementMap + } else { + mesh.displacementMap = groundTexture.displacementMap + } + if (envVars.env_normalmap) { + mesh.normalMap = addTexture.normalMap + } + const ground = new Mesh( + new PlaneGeometry(envVars.focus * 7, envVars.focus * 7, 1024, 1024), + new MeshStandardMaterial(mesh) + ) + ground.position.y = -0.33 * envVars.focus + ground.rotateX(-Math.PI / 2) + ground.name = "ground" + models.value.push({ name: 'ground', modelFile: ground }) } - if (envVars.env_normalmap) { - mesh.normalMap = addTexture.normalMap - } - const ground = new Mesh( - new PlaneGeometry(envVars.focus * 7, envVars.focus * 7, 1024, 1024), - new MeshStandardMaterial(mesh) - ) - ground.position.y = -0.33 * envVars.focus - ground.rotateX(-Math.PI / 2) - ground.name = "ground" - models.value.push({ name: 'ground', modelFile: ground }) for (let index = 0; index < clickable.list.length; index++) { const element = clickable.list[index]; @@ -185,18 +187,19 @@ const loadModels = async () => { sidebar_scene.name = raw_data.name; sidebar_scene.setData(sidebar_items) - const loaded = seekByName(scene.value, 'loaded') - if (loaded) { - const box = new Box3(); - box.expandByObject(loaded); - const box_size = new Vector3(); - box.getSize(box_size) - props.loaded_pan( - new Vector3(box_size.x * 0.5, box_size.y * 0.5, box_size.z * 0.5), - new Vector3(box_size.x * -0.5, box_size.y * -0.25, box_size.z * -0.5), - ) - } - + const box = new Box3(); + models.value.forEach(element => { + if (element.name !== 'ground') { + box.expandByObject(element.modelFile.clone()); + } + }); + const box_size = new Vector3(); + box.getSize(box_size) + props.loaded_pan( + new Vector3(box_size.x * 0.5, box_size.y * 0.5, box_size.z * 0.5), + new Vector3(box_size.x * -0.5, box_size.y * -0.25, box_size.z * -0.5), + ) + console.log(box_size) controls.value.enabled = true; props.loaded(false)