From 16eb67ab6b103663d30cad9ba74360f982e131cb Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 03 九月 2024 10:34:59 +0800
Subject: [PATCH] 自定义列显隐控制

---
 src/views/screen/components/screen-map-three/experience/world/enviroment.js |   87 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 75 insertions(+), 12 deletions(-)

diff --git a/src/views/screen/components/screen-map-three/experience/world/enviroment.js b/src/views/screen/components/screen-map-three/experience/world/enviroment.js
index 6ee6381..56a8fcf 100644
--- a/src/views/screen/components/screen-map-three/experience/world/enviroment.js
+++ b/src/views/screen/components/screen-map-three/experience/world/enviroment.js
@@ -3,6 +3,9 @@
 import rotatingPoint from '@/assets/map/texture/rotating-point2.png';
 import circlePoint from '@/assets/map/texture/circle-point.png';
 import sceneBg from '@/assets/map/texture/scene-bg2.png';
+
+import { GUI } from "three/examples/jsm/libs/lil-gui.module.min.js";
+
 export default class Enviroment {
   constructor(experience) {
     this.experience = experience;
@@ -10,23 +13,25 @@
     this.textureLoader = new THREE.TextureLoader();
 
     this.setSunLight();
-    this.setRotateHola();
-    this.setBackground();
-    this.setCirclePoint();
+    // this.setRotateHola();
+    // this.setBackground();
+    // this.setCirclePoint();
+
+    // this.debuger();
   }
   setSunLight() {
     //   骞宠鍏�1
-    let directionalLight1 = new THREE.DirectionalLight(0xffffff, 0.6);
-    directionalLight1.position.set(400, 200, 200);
+    this.directionalLight1 = new THREE.DirectionalLight(0xffffff, 0.9);
+    this.directionalLight1.position.set(0, 57, 33);
     //   骞宠鍏�2
-    let directionalLight2 = new THREE.DirectionalLight(0xffffff, 0.6);
-    directionalLight2.position.set(-400, -200, -300);
+    this.directionalLight2 = new THREE.DirectionalLight(0xffffff, 0.6);
+    this.directionalLight2.position.set(-95, 28, -33);
     // 鐜鍏�
-    let ambientLight = new THREE.AmbientLight(0xffffff, 0.5);
+    this.ambientLight = new THREE.AmbientLight(0xffffff, 0.8);
 
-    this.scene.add(directionalLight1);
-    this.scene.add(directionalLight2);
-    this.scene.add(ambientLight);
+    this.scene.add(this.directionalLight1);
+    this.scene.add(this.directionalLight2);
+    this.scene.add(this.ambientLight);
   }
 
   setRotateHola() {
@@ -111,4 +116,62 @@
       this.hola2.rotation.z -= 0.001;
     }
   }
-}
\ No newline at end of file
+
+  destroy() {
+    this.disposeObject();
+    this.removeObject();
+    this.resetObject();
+  }
+
+  disposeObject() {
+    this.hola1.geometry.dispose();
+    this.hola1.material.dispose();
+    this.hola2.geometry.dispose();
+    this.hola2.material.dispose();
+    this.background.geometry.dispose();
+    this.background.material.dispose();
+    this.circle.geometry.dispose();
+    this.circle.material.dispose();
+    this.directionalLight1.dispose();
+    this.directionalLight2.dispose();
+    this.ambientLight.dispose();
+  }
+
+  removeObject() {
+    this.scene.remove(this.hola1);
+    this.scene.remove(this.hola2);
+    this.scene.remove(this.background);
+    this.scene.remove(this.circle);
+  }
+
+  resetObject() {
+    this.hola1 = null;
+    this.hola2 = null;
+    this.background = null;
+    this.circle = null;
+    this.directionalLight1 = null;
+    this.directionalLight2 = null;
+    this.ambientLight = null;
+  }
+
+  debuger() {
+    const gui = new GUI();
+
+    const folder1 = gui.addFolder('骞宠鍏�1');
+    const folder2 = gui.addFolder('骞宠鍏�2');
+    const folder3 = gui.addFolder('鐜鍏�');
+
+    folder1.add(this.directionalLight1.position, 'x').min(-200).max(200).step(1).name("x杞寸殑浣嶇疆");
+    folder1.add(this.directionalLight1.position, 'y').min(-200).max(200).step(1).name("y杞寸殑浣嶇疆");
+    folder1.add(this.directionalLight1.position, 'z').min(-200).max(200).step(1).name("z杞寸殑浣嶇疆");
+    folder1.add(this.directionalLight1, 'intensity').min(0).max(1).step(0.1).name("寮哄害");
+
+    folder2.add(this.directionalLight2.position, 'x').min(-200).max(200).step(1).name("x杞寸殑浣嶇疆");
+    folder2.add(this.directionalLight2.position, 'y').min(-200).max(200).step(1).name("y杞寸殑浣嶇疆");
+    folder2.add(this.directionalLight2.position, 'z').min(-200).max(200).step(1).name("z杞寸殑浣嶇疆");
+    folder2.add(this.directionalLight2, 'intensity').min(0).max(1).step(0.1).name("寮哄害");
+
+
+    folder3.add(this.ambientLight, 'intensity').min(0).max(1).step(0.1).name("寮哄害");
+  }
+}

--
Gitblit v1.8.0