From 1bc33546a044cbc84dd9595c19dbcd9a4e309fc9 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期六, 10 一月 2026 14:06:10 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/insight/agv/AgvThree.js |   42 ++++++++++++++++++++++++++----------------
 1 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/zy-acs-flow/src/map/insight/agv/AgvThree.js b/zy-acs-flow/src/map/insight/agv/AgvThree.js
index 58724ff..bf3211d 100644
--- a/zy-acs-flow/src/map/insight/agv/AgvThree.js
+++ b/zy-acs-flow/src/map/insight/agv/AgvThree.js
@@ -71,7 +71,7 @@
         renderer.setClearAlpha(0);
         renderer.shadowMap.enabled = true;
         renderer.toneMapping = THREE.ACESFilmicToneMapping;
-        renderer.setPixelRatio(window.devicePixelRatio);
+        renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
         renderer.setSize(this.getFullWidth(), this.getFullHeight());
         this.dom?.appendChild(renderer.domElement);
         return renderer;
@@ -103,24 +103,25 @@
 
     initLight = () => {
         const hemiLight = new THREE.HemisphereLight(0xffffff, 0xffffff, 6);
-        hemiLight.color.setHSL(0.6, 1, 0.6);
-        hemiLight.groundColor.setHSL(0.095, 1, 0.75);
+        hemiLight.color.setHSL(0.6, 1, 0.75);
+        hemiLight.groundColor.setHSL(0.095, 1, 0.85);
         hemiLight.position.set(0, 1500, 0);
         this.scene.add(hemiLight);
 
-        const dirLight = new THREE.DirectionalLight(0xffffff, 2.5);
-        dirLight.color.setHSL(0.1, 1, 0.95);
-        dirLight.position.set(-10, 10, 10);
-        dirLight.position.multiplyScalar(30);
+        const dirLight = new THREE.DirectionalLight(0xffffff, 4);
+        dirLight.color.setHSL(0.1, 1, 1.0);
+        dirLight.position.set(-300, 300, 300);
         this.scene.add(dirLight);
 
-        const dirLight1 = new THREE.DirectionalLight(0xffffff, 2.5);
-        dirLight1.color.setHSL(0.1, 1, 0.95);
-        dirLight1.position.set(10, 10, -10);
+        const dirLight1 = new THREE.DirectionalLight(0xffffff, 4);
+        dirLight1.color.setHSL(0.1, 1, 1.0);
+        dirLight1.position.set(300, 300, -300);
         dirLight1.position.multiplyScalar(30);
         this.scene.add(dirLight1);
-    }
 
+        const ambient = new THREE.AmbientLight(0xffffff, 1.0);
+        // this.scene.add(ambient);
+    }
 
     generateMesh = (fn) => {
         const loader = new FBXLoader();
@@ -159,19 +160,28 @@
         if (this.renderer) {
             this.renderer.dispose();
             this.renderer.forceContextLoss();
-            this.renderer.context = null;
-            this.renderer.domElement = null;
+            if (this.dom && this.renderer.domElement && this.dom.contains(this.renderer.domElement)) {
+                try {
+                    this.dom.removeChild(this.renderer.domElement);
+                } catch (error) {
+                    console.warn('Failed to remove renderer.domElement:', error);
+                }
+            }
             this.renderer = null;
         }
         if (this.controls) {
             this.controls.dispose();
             this.controls = null;
         }
+        if (this.stats && this.stats.domElement && this.dom.contains(this.stats.domElement)) {
+            try {
+                this.dom.removeChild(this.stats.domElement);
+            } catch (error) {
+                console.warn('Failed to remove stats.domElement:', error);
+            }
+        }
         this.camera = null;
         this.objects = [];
-        while (this.dom?.firstChild) {
-            this.dom.removeChild(this.dom.firstChild);
-        }
     }
 
     removeEntity = (object) => {

--
Gitblit v1.9.1