xzw 2 år sedan
förälder
incheckning
7b68834543

+ 16 - 0
src/custom/materials/DepthBasicMaterial.js

@@ -45,6 +45,20 @@ export default class DepthBasicMaterial extends THREE.ShaderMaterial{
                 let viewportOffset = viewport.offset || new THREE.Vector2() 
                 let viewportOffset = viewport.offset || new THREE.Vector2() 
                 this.uniforms.resolution.value.copy(viewport.resolution) 
                 this.uniforms.resolution.value.copy(viewport.resolution) 
                 this.uniforms.viewportOffset.value.copy(viewportOffset)
                 this.uniforms.viewportOffset.value.copy(viewportOffset)
+                
+                
+                /* let dt = this.uniforms.depthTexture.value
+                if(window.logDep != 1000 && dt ){ 
+                    window.logDep = (window.logDep || 0) + 1
+                    
+                    
+                    console.log(' DepthParams', [ viewport.resolution.x, viewport.resolution.y], 
+                        [dt.image.width, dt.image.height] ,
+                        this.uniforms.nearPlane.value, this.uniforms.farPlane.value
+                    )
+                    
+                } */
+                
             },
             },
             render:(e)=>{//before render  如果有大于两个viewport的话,不同viewport用不同的depthTex
             render:(e)=>{//before render  如果有大于两个viewport的话,不同viewport用不同的depthTex
                 this.updateDepthParams(e)
                 this.updateDepthParams(e)
@@ -174,6 +188,8 @@ export default class DepthBasicMaterial extends THREE.ShaderMaterial{
             this.uniforms.depthTexture.value = viewer.getPRenderer().getRtEDL(viewport).depthTexture   //其实只赋值一次就行
             this.uniforms.depthTexture.value = viewer.getPRenderer().getRtEDL(viewport).depthTexture   //其实只赋值一次就行
             this.uniforms.nearPlane.value = camera.near;
             this.uniforms.nearPlane.value = camera.near;
             this.uniforms.farPlane.value = camera.far;
             this.uniforms.farPlane.value = camera.far;
+            
+            
         }
         }
         //this.uniforms.uUseOrthographicCamera.value = !camera.isPerspectiveCamera
         //this.uniforms.uUseOrthographicCamera.value = !camera.isPerspectiveCamera
     }
     }

+ 2 - 3
src/custom/materials/ModelTextureMaterial.js

@@ -273,9 +273,8 @@ let shader = {
                     vec2 depth1 = getDepth(vWorldPosition1N, depthMap1, cameraHeight1, ceilHeight1, eyePos);
                     vec2 depth1 = getDepth(vWorldPosition1N, depthMap1, cameraHeight1, ceilHeight1, eyePos);
                     
                     
                     
                     
-                    gl_FragDepthEXT = mix(depth0.y,depth1.y,progress);
-                    
-                    
+                    gl_FragDepthEXT = mix(depth0.y,depth1.y,progress); 
+                    gl_FragDepthEXT = min(1.0, gl_FragDepthEXT);    //防止部分手机出现黑块。ios 16  。 因为我给的超远值超出范围
                     
                     
 
 
                 #endif
                 #endif

+ 3 - 1
src/custom/potree.shim.js

@@ -143,11 +143,13 @@ var texLoader = new THREE.TextureLoader()
     let gl_
     let gl_
     Features.EXT_DEPTH = { 
     Features.EXT_DEPTH = { 
         isSupported: function (gl) { 
         isSupported: function (gl) { 
-        
+         
             gl = gl || gl_
             gl = gl || gl_
             gl_ = gl
             gl_ = gl
             if(browser.detectIOS()){
             if(browser.detectIOS()){
                 let {major,minor,patch} = browser.iosVersion()
                 let {major,minor,patch} = browser.iosVersion()
+                //console.warn('iosVersion',major,minor,patch)
+                
                 if(major == 15 && minor == 4 && patch == 1){
                 if(major == 15 && minor == 4 && patch == 1){
                     console.warn('检测到是ios15.4.1, 关闭EXT_frag_depth')//该版本ext_depth有问题,导致clear错乱。没有解决办法先关闭。
                     console.warn('检测到是ios15.4.1, 关闭EXT_frag_depth')//该版本ext_depth有问题,导致clear错乱。没有解决办法先关闭。
                     return false
                     return false

+ 6 - 4
src/custom/start.js

@@ -20,6 +20,11 @@ export function start(dom, mapDom, number ){ //t-Zvd3w0m
      */ 
      */ 
     Potree.settings.number = number || 't-o5YMR13'// 't-iksBApb'// 写在viewer前
     Potree.settings.number = number || 't-o5YMR13'// 't-iksBApb'// 写在viewer前
  
  
+    if(!Potree.settings.isOfficial){ 
+        if(/* Potree.settings.isTest && */ browser.isMobile()){
+            changeLog()
+        }
+    }  
     
     
     if(browser.urlHasValue('google'))Potree.settings.mapCompany = 'google' 
     if(browser.urlHasValue('google'))Potree.settings.mapCompany = 'google' 
     if(browser.urlHasValue('timing'))Potree.measureTimings = 1
     if(browser.urlHasValue('timing'))Potree.measureTimings = 1
@@ -46,10 +51,7 @@ export function start(dom, mapDom, number ){ //t-Zvd3w0m
             viewer.toggleSidebar();
             viewer.toggleSidebar();
         }); 
         }); 
         Potree.settings.sizeFitToLevel = true//当type为衰减模式时自动根据level调节大小。每长一级,大小就除以2
         Potree.settings.sizeFitToLevel = true//当type为衰减模式时自动根据level调节大小。每长一级,大小就除以2
-        Potree.settings.rotAroundPoint = false
-        if(/* Potree.settings.isTest && */ browser.isMobile()){
-            changeLog()
-        }
+        Potree.settings.rotAroundPoint = false 
     }  
     }  
 
 
     Potree.loadDatasetsCallback = function(data, ifReload){
     Potree.loadDatasetsCallback = function(data, ifReload){