xzw 2 سال پیش
والد
کامیت
3144da7f4b
2فایلهای تغییر یافته به همراه23 افزوده شده و 9 حذف شده
  1. 22 8
      public/static/lib/potree/potree.js
  2. 1 1
      public/static/lib/potree/potree.js.map

+ 22 - 8
public/static/lib/potree/potree.js

@@ -57957,7 +57957,7 @@
 	        this.events = {
 	            setSize:(e)=>{//如果出现横条状的异常,往往是viewportOffset出错  //地图不需要
 	                let viewport = e.viewport; 
-	                this.uniforms.resolution.value.copy(viewport.resolution);  
+	                this.uniforms.resolution.value.copy(viewport.resolution2);  
 	                this.uniforms.devicePixelRatio.value = window.devicePixelRatio; 
 	                this.lineWidth = this.lineWidth_; //update
 	                if(!this.useDepth /* || !e.viewport.camera.isPerspectiveCamera  */|| !e.viewport)return
@@ -70858,14 +70858,14 @@ void main()
 	        });
 	         
 	        
-	        
+	         
 	        this.events = {
 	            setSize:(e)=>{//如果出现横条状的异常,往往是viewportOffset出错  //地图不需要
 	                if(!this.useDepth /* || !e.viewport.camera.isPerspectiveCamera  */|| !e.viewport)return
 	                let viewport = e.viewport;
 	                let viewportOffset = viewport.offset || new Vector2(); 
 	                
-	                this.uniforms.resolution.value.copy(viewport.resolution);  
+	                this.uniforms.resolution.value.copy(viewport.resolution2);  //2023.6.12突然发现ratio>1的用resolution不对,得用2才对。但是之前明明记得不是这样
 	                this.uniforms.viewportOffset.value.copy(viewportOffset);
 	            },
 	            render:(e)=>{//before render  如果有大于两个viewport的话,不同viewport用不同的depthTex
@@ -71069,11 +71069,18 @@ void main()
 	    }
 	    
 	    realVisible(){
+	        
+	        if(!this.visible && this.unvisibleReasons && this.unvisibleReasons.some(e=>e != 'unableCompute')){
+	            return false
+	        }
+	        
+	        
 	        let v = true; 
-	        let parent = this; 
-	        let lastParent;
+	        let parent = this.parent; 
+	        let lastParent = this;
+	        
 	        while(parent){
-	            if(parent.visible === false){
+	            if(parent.visible === false ){
 	                v = false;
 	                break; 
 	            }
@@ -71125,7 +71132,7 @@ void main()
 	                
 	                
 	                let r1 = Potree.Utils.getPos2d(center, camera, viewer.renderArea, e.viewport); 
-	                if(!r1.trueSide)return //Potree.Utils.updateVisible(this, 'notTrueSide', false); 但这句会使realVisible为false从而无法更新//console.error('!r1.trueSide') //中心点如果在背面直接不渲染了
+	                if(!r1.trueSide)return  Potree.Utils.updateVisible(this, 'unableCompute', false);// 但这句会使realVisible为false从而无法更新//console.error('!r1.trueSide') //中心点如果在背面直接不渲染了
 	                    
 	                let r2, point2;
 	                
@@ -71144,6 +71151,12 @@ void main()
 	                        }
 	                    }else {
 	                        let dis = r2.pos.distanceTo(r1.pos);
+	                        if(dis == 0){
+	                            //console.log('dis == 0') 
+	                            Potree.Utils.updateVisible(this, 'unableCompute', false);
+	                            return
+	                            break
+	                        } 
 	                        if(dis<10 && !p2StateHistory.includes('tooLong')){//和r1的屏幕距离太近,要加长,否则精度过低
 	                            p2State = 'tooShort';
 	                            len = 100/dis * len;  
@@ -71156,7 +71169,7 @@ void main()
 	                //console.log(p2StateHistory,len)
 	                
 	                if(!r2.trueSide){
-	                    return //Potree.Utils.updateVisible(this, 'notTrueSide', false), console.log('  !r2.trueSide', )
+	                    return  Potree.Utils.updateVisible(this, 'unableCompute', false)//, console.log('  !r2.trueSide', )
 	                }
 	                //Potree.Utils.updateVisible(this, 'notTrueSide', true)
 	                 
@@ -95770,6 +95783,7 @@ ENDSEC
                     }else{ */
                         gl_FragDepthEXT = mix(depth0.y,depth1.y,progress);
                     //}
+                    gl_FragDepthEXT = min(1.0, gl_FragDepthEXT);    //防止部分手机出现黑块。ios 16  。 因为我给的超远值超出范围
                     
                     
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
public/static/lib/potree/potree.js.map