xzw před 2 měsíci
rodič
revize
95bf23c3f4

+ 15 - 6
src/custom/objects/3dgs/splatter/SplatterThree.js

@@ -3396,12 +3396,17 @@ export class Splatter extends THREE.EventDispatcher{
              
         
         }else{
+            this.renderDepth_ = false
+            
             //先渲染其他物体,再渲染高斯(开启depthTest关闭depthWrite),最后清除深度后渲染测量线等
-            viewer.addEventListener(/* 'renderToRTDepth' */  'render.beforeClearDepth' /* 'render.begin3' */, (e)=>{
+            viewer.addEventListener(this.renderDepth_ ? 'renderToRTDepth' : 'render.beforeClearDepth' /* 'render.begin3' */, (e)=>{
                 if(!this.visible || e.viewport?.name != 'MainView')return
                 this.render(viewer.mainViewport.camera  /* , viewer.mainViewport.view.getPivot() */);
             }) 
             
+            
+            
+            
             this.addEventListener('update', ()=>{ 
                 //console.log('onUpdate 触发渲染')
                 viewer.addEventListener('loopStart',()=>{
@@ -3482,11 +3487,15 @@ export class Splatter extends THREE.EventDispatcher{
             }else{ */
                 this.transCamera(threeCamera )   
            /*  }
-        } */
-        
-        // I.depthMask(true), 
-         I.enable(I.DEPTH_TEST),  //原本是开启测试关闭写入
-         I.depthMask(false),  //是否depthWrite
+        } */  
+        if(this.renderDepth_){
+            I.disable(I.DEPTH_TEST), //disable  
+            I.depthMask(true)    //失败了,无法遮住其他mesh
+        }else{
+            I.enable(I.DEPTH_TEST),   
+            I.depthMask(false)   //是否depthWrite
+        }
+         
         this.renderer.render(this.camera, I.canvas.width, I.canvas.height),
         this.restoreState();
          viewer.addTimeMark('renderGS','end') 

+ 2 - 2
src/custom/start.js

@@ -1164,9 +1164,9 @@ export function mergeEditStart(dom, mapDom){
                     model.updateMatrixWorld()
                     viewer.updateModelBound() 
                 }  
-                let maintainCenter = (e)=>{ 
+                let maintainCenter = (e)=>{  
                     //MergeEditor.maintainBoundXY(model) 
-                    e.by2d || MergeEditor.maintainBoundCenter(model) 
+                    /* e.by2d || */ e.byControl && MergeEditor.maintainBoundCenter(model) 
                     updateBound()
                     model.dispatchEvent({type:'transformChanged',  byControl:e.byControl})  
                 }

+ 3 - 3
src/navigation/OrbitControlsNew.js

@@ -91,13 +91,13 @@ export class OrbitControls extends THREE.EventDispatcher{
            
 			if (mode == 'rotate') {
                 let ndrag = e.drag.mouseDelta.clone()
-                if(Potree.settings.ctrlRotInvSmooth){
+                /* if(Potree.settings.ctrlRotInvSmooth){
                     ndrag.x *= -1
-                }         
+                }  */        
                 if(ndrag.x || ndrag.y){
                     view.cancelFlying('rotate')
                 }
-				this.yawDelta += ndrag.x * this.rotationSpeed;
+				this.yawDelta -= ndrag.x * this.rotationSpeed;
 				this.pitchDelta -= ndrag.y * this.rotationSpeed;
                 
 			} else if(mode == 'pan'){