|
@@ -76977,8 +76977,8 @@ void main()
|
|
|
let getVal = (a, b) => a != void 0 ? a : b;
|
|
|
|
|
|
|
|
|
-
|
|
|
- let pickWindowSize_ = MathUtils.clamp( Math.round((1.1-this.maxLevel/this.nodeMaxLevel)*80), 5, 100);
|
|
|
+ let r0 = this.nodeMaxLevel > 0 ? this.maxLevel/this.nodeMaxLevel : 0.5;
|
|
|
+ let pickWindowSize_ = MathUtils.clamp( Math.round((1.1-r0)*80), 5, 100);
|
|
|
let pickWindowSize = getVal(params.pickWindowSize, pickWindowSize_ ); /* 65 */ //拾取像素边长,越小越精准,但点云稀疏的话可能容易出现识别不到的情况。 另外左下侧会有缝隙无法识别到,缝隙大小和这个值有关//突然发现pickWindowSize在一百以内的变化对pick费时影响甚微,1和100差1毫秒不到,但400时会多4毫秒
|
|
|
|
|
|
if(camera.type == 'OrthographicCamera'){
|
|
@@ -77317,7 +77317,7 @@ void main()
|
|
|
}else {
|
|
|
|
|
|
let base = this.material.spacing / Math.pow(2, this.maxLevel); //点云大小在level为0时设置为spacing,每长一级,大小就除以2. (不同场景还是会有偏差)
|
|
|
- let r = this.maxLevel / nodeMaxLevel; //越大,越精细,需要越缩小
|
|
|
+ let r = nodeMaxLevel > 0 ? this.maxLevel / nodeMaxLevel : 0.5; //越大,越精细,需要越缩小
|
|
|
base *= nodeMaxLevel > 0 ? Math.max(0.1, Math.pow(r, 3*r+0.3 )) : 0.1; //低质量的缩小点,因为视觉上看太大了。navvis是不铺满的,我们也留一点缝隙(但是ortho是不用缩小的,如果能分开判断就好了)
|
|
|
|
|
|
//base *= nodeMaxLevel > 0 ? Math.max(0.1, Math.pow(this.maxLevel / nodeMaxLevel, 1.1)) : 0.1 //低质量的缩小点,因为视觉上看太大了。navvis是不铺满的,我们也留一点缝隙(但是ortho是不用缩小的,如果能分开判断就好了)
|
|
@@ -155386,7 +155386,7 @@ ENDSEC
|
|
|
});
|
|
|
this.ifAllLoaded();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
setView(o={}){
|
|
|
let callback = ()=>{
|
|
|
if(o.displayMode){
|