xzw 1 gadu atpakaļ
vecāks
revīzija
a6991eb2b1

+ 1 - 1
src/Potree.js

@@ -111,7 +111,7 @@ console.log('Potree ' + version.major + '.' + version.minor + version.suffix);
 export let pointBudget = 1 * 1000 * 1000;
 export let framenumber = 0;
 export let numNodesLoading = 0;
-export let maxNodesLoading = 6; 
+export let maxNodesLoading = 10; 
 
 export const debug = {};
 

+ 8 - 4
src/custom/materials/postprocessing/EffectComposer.js

@@ -51,9 +51,9 @@ var EffectComposer = function ( renderer, renderTarget ) {
 
 	this.copyPass = new ShaderPass( CopyShader );
     
-    viewer.addEventListener('resize',(e)=>{ 
+    /* viewer.addEventListener('resize',(e)=>{ 
         this.setSize(e.viewport.resolution2.x,e.viewport.resolution2.y) //暂时假设composer渲染的viewer的viewports.length == 1
-    })
+    }) */
     
 };
 
@@ -98,6 +98,10 @@ Object.assign(  EffectComposer.prototype, {
             
         }  
         
+        if(oldTarget){
+            this.setSize(oldTarget.width,oldTarget.height) 
+        }
+        
 		for ( i = 0; i < il; i ++ ) {
 
 			pass = passes[ i ];
@@ -177,7 +181,7 @@ Object.assign(  EffectComposer.prototype, {
  
         scaleRatio = scaleRatio || this.scaleRatio || 1;
         //console.log('setSize', width * scaleRatio, height * scaleRatio)
-        let maxTexWidth = 8192
+        let maxTexWidth = 4096//否则黑的
         let w = width * scaleRatio
         let h = height * scaleRatio
         if(w > maxTexWidth || h > maxTexWidth){ //超出会崩溃
@@ -190,7 +194,7 @@ Object.assign(  EffectComposer.prototype, {
         w = width * scaleRatio
         h = height * scaleRatio
         
-        
+        console.log('setSize', w,h, width,height,this.scaleRatio)
 		this.renderTarget1.setSize( w, h );
 		this.renderTarget2.setSize( w, h );
 

+ 1 - 1
src/custom/materials/postprocessing/FXAAShader.js

@@ -266,7 +266,7 @@ const FXAAShader = {
 	}
 
 	void main() {
-			const float edgeDetectionQuality = 0.1 ;//.05 ;  //越高,越保留细节;越低,越平滑 但模糊 
+			const float edgeDetectionQuality = 0.9 ;//.05 ;  //越高,越保留细节;越低,越平滑 但模糊 
 			const float invEdgeDetectionQuality = 1. / edgeDetectionQuality;
 
 			gl_FragColor = FxaaPixelShader(

+ 4 - 4
src/custom/objects/tool/MeasuringTool.js

@@ -683,14 +683,14 @@ export class MeasuringTool extends THREE.EventDispatcher{
 	
     
 	render(o={}){
-        if(this.scene.children.length == 0)return
+        if(this.scene.children.filter(e=>e.visible).length == 0)return
         
         Potree.Utils.setCameraLayers(o.camera, ['measure'])
 		
-        if(o.screenshot && this.viewer.fxaaPass.enabled){ //抗锯齿 
+        /* if(o.screenshot && this.viewer.fxaaPass.enabled){ //抗锯齿 
             this.viewer.composer.render(this.scene, o.camera );   
-        }else{ 
+        }else{  */
             this.viewer.renderer.render(this.scene, o.camera );
-        }
+        //}
 	}
 };

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

@@ -1473,7 +1473,7 @@ Potree.updateVisibility = function(pointclouds, camera, areaSize){
             unloadedGeometry[i].node.load(unloadedGeometry[i].pointcloud.pcoGeometry); 
         }  */ 
         
-        let maxNodesLoading = Common.getBestCount('unloadedGeometry', viewer.lastFrameChanged?1:3, 10,  4, 15 /*  , true  */ )//dur在iphoneX中静止有7,pc是2  //!lastFrameChanged静止时加速下载
+        let maxNodesLoading = Common.getBestCount('unloadedGeometry', viewer.lastFrameChanged?2:4, 10,  4, 15 /*  , true  */ )//dur在iphoneX中静止有7,pc是2  //!lastFrameChanged静止时加速下载
         //THREE.Math.clamp(Math.round(9 - dur), 1, 6 ) 
         //console.log('unloadedGeometry',unloadedGeometry.length, 'maxNodesLoading',maxNodesLoading)
         //主要在手机端有效果。不改之前在展示的点云较多时前进会卡。

+ 13 - 13
src/custom/viewer/ViewerNew.js

@@ -3221,7 +3221,7 @@ export class Viewer extends ViewerBase{
  
         let viewerMaster = info.map ? this.mapViewer : this; //截图主体
         let useMap = info.type == 'measure' || info.map
-        
+        console.log('startScreenshot',width,height)
         
         if(Potree.settings.displayMode == 'showPanos' && viewer.scene.view.isFlying('pos')){//如果在飞,飞完再截图
             info.getImageDeferred = getImageDeferred , info.finishDeferred = finishDeferred
@@ -3257,9 +3257,9 @@ export class Viewer extends ViewerBase{
             
             this.needRender = true
             
-            let { dataUrl  } = viewerMaster.makeScreenshot( new THREE.Vector2(width,height), null, compressRatio    );
-           
-            
+            //let { dataUrl  } = viewerMaster.makeScreenshot( new THREE.Vector2(width,height), null, compressRatio    );
+            let canvas = document.getElementsByTagName('canvas')[0]
+            let dataUrl = canvas.toDataURL()
             
             if(!Potree.settings.isOfficial){
                 Common.downloadFile(dataUrl, 'screenshot.jpg') 
@@ -3445,34 +3445,34 @@ export class Viewer extends ViewerBase{
                 let pano = this.images360.findNearestPano()
                 let dis = pano.position.distanceTo(this.mainViewport.camera.position)
                 if(dis > 3) floorplanView = true; //离远一点的平视希望也是全部加载好。勉强只能这么写
-                console.log('floorplanView',floorplanView)
+                console.warn('floorplanView',floorplanView)
             }    
                  
-            let maxTime = floorplanView ? 10000 : 2000;    //注意交通一般要截图两次,先截带测量线的 
+            let maxTime = floorplanView ? 3000 : 1500;    //注意交通一般要截图两次,先截带测量线的 
             setTimeout(()=>{
                 if(Potree.pointsLoading && Potree.settings.displayMode == 'showPointCloud'){//如果还在加载 
                     viewer.addEventListener('pointsLoaded',()=>{ //点云加载完时(不一定准确) 
-                        if(!finish)console.log('加载完毕', ' numVisiblePoints', Potree.numVisiblePoints)                         
+                        if(!finish)console.warn('加载完毕', ' numVisiblePoints', Potree.numVisiblePoints)                         
                         dealDone()
                     },{once:true})
                     let lastNumVisiblePoints  
                     if(floorplanView){ //perspective的不需要,远处加载不完也没大碍
                         setTimeout(()=>{//超时不候 
                             if(!finish /* && Potree.numVisiblePoints > Potree.pointBudget * 0.7  */){
-                                console.log('加载时间达最长限制的40%,降level, numVisiblePoints', Potree.numVisiblePoints)  
+                                console.warn('加载时间达最长限制的50%,降level, numVisiblePoints', Potree.numVisiblePoints)  
                                 lastNumVisiblePoints = Potree.numVisiblePoints      
                                 decreaseLevel() //加载时间过长 
                             } 
-                        },maxTime*0.4)
+                        },maxTime*0.5)
                         setTimeout(()=>{// 第一次降有可能没效果,因为大部分level不是最高的
                             if(!finish && (Potree.numVisiblePoints - lastNumVisiblePoints) > -10000  ){ //没怎么降
-                                console.log('加载时间达最长限制的50%,降level, numVisiblePoints', Potree.numVisiblePoints)        
+                                console.warn('加载时间达最长限制的60%,降level, numVisiblePoints', Potree.numVisiblePoints)        
                                 decreaseLevel() //加载时间过长
                             } 
-                        },maxTime*0.5)
+                        },maxTime*0.6)
                     }
                     setTimeout(()=>{//超时不候 
-                        if(!finish)console.log('超时, numVisiblePoints', Potree.numVisiblePoints)  
+                        if(!finish)console.warn('超时, numVisiblePoints', Potree.numVisiblePoints)  
                         dealDone()
                     },maxTime)
                 }else{
@@ -3485,7 +3485,7 @@ export class Viewer extends ViewerBase{
                 let levels = viewer.scene.pointclouds[0].visibleNodes.map(e=>e.getLevel()) 
                 //console.log(levels)
                 let actMaxLevel = Math.max.apply(null, levels) //实际加载到的最高的node level
-                console.log('decreaseLevel, 新maxLevel', actMaxLevel - 1, '原maxlevel', viewer.scene.pointclouds[0].maxLevel, 'numVisiblePoints', Potree.numVisiblePoints) 
+                console.warn('decreaseLevel, 新maxLevel', actMaxLevel - 1, '原maxlevel', viewer.scene.pointclouds[0].maxLevel, 'numVisiblePoints', Potree.numVisiblePoints) 
                 viewer.scene.pointclouds[0].maxLevel = actMaxLevel - 1
                 viewer.scene.pointclouds[0].material.oldSize_ = viewer.scene.pointclouds[0].material.size
                 viewer.scene.pointclouds[0].material.size *= 1.5