|
@@ -625,7 +625,7 @@ var Clip = {
|
|
|
let camera = viewer.mainViewport.camera
|
|
let camera = viewer.mainViewport.camera
|
|
|
//if(Clip.activeViewName == 'mainView')return reject()
|
|
//if(Clip.activeViewName == 'mainView')return reject()
|
|
|
|
|
|
|
|
- const maxWidth = 8192, minWidth = Potree.browser.urlHasValue('clipMinWidth',true) || 1024 //图片尺寸最大最小值。
|
|
|
|
|
|
|
+ const maxWidth = 8192, minWidth = Potree.browser.urlHasValue('clipMinWidth',true) || 512 //图片尺寸最大最小值。
|
|
|
//Potree.settings.pointDensity = 'ultraHigh'
|
|
//Potree.settings.pointDensity = 'ultraHigh'
|
|
|
|
|
|
|
|
viewer.inputHandler.deselectAll()
|
|
viewer.inputHandler.deselectAll()
|
|
@@ -635,10 +635,12 @@ var Clip = {
|
|
|
|
|
|
|
|
|
|
|
|
|
let material = new ExtendPointCloudMaterial
|
|
let material = new ExtendPointCloudMaterial
|
|
|
- material.pointSizeType = Potree.PointSizeType.FIXED //Potree.PointSizeType
|
|
|
|
|
- material.size = Potree.browser.urlHasValue('clipPointSize',true) || 1
|
|
|
|
|
|
|
+ material.pointSizeType = Potree.browser.urlHasValue('clipFixed') ? Potree.PointSizeType.FIXED : Potree.PointSizeType.ATTENUATED //Potree.PointSizeType
|
|
|
|
|
+ material.size = Potree.browser.urlHasValue('clipPointSize',true) || visiPointclouds[0].material.size //1
|
|
|
material.uniforms.minSize.value = 0.1
|
|
material.uniforms.minSize.value = 0.1
|
|
|
|
|
+ material.uniforms.orthoMaxSize.value = 6
|
|
|
material.activeAttributeName = 'rgba'
|
|
material.activeAttributeName = 'rgba'
|
|
|
|
|
+
|
|
|
//material.classification = pointcloud.material.classification;
|
|
//material.classification = pointcloud.material.classification;
|
|
|
|
|
|
|
|
material.clipBoxBig_in = visiPointclouds[0].material.clipBoxBig_in
|
|
material.clipBoxBig_in = visiPointclouds[0].material.clipBoxBig_in
|
|
@@ -664,7 +666,7 @@ var Clip = {
|
|
|
bound.expandByPoint(p1)
|
|
bound.expandByPoint(p1)
|
|
|
})
|
|
})
|
|
|
let boundSize = bound.getSize(new THREE.Vector3)
|
|
let boundSize = bound.getSize(new THREE.Vector3)
|
|
|
- let minZoom = Potree.browser.urlHasValue('clipZoom',true) || 80 //1px = 1个点 = 1cm , 如果一个点都是1cm的话
|
|
|
|
|
|
|
+ let minZoom = Potree.browser.urlHasValue('clipZoom',true) || 50 //1px = 1个点 = 1cm , 如果一个点都是1cm的话
|
|
|
//zoom不宜过大或过小,过小点云重叠、画面模糊;过大点云有间隙,纹理就看不清
|
|
//zoom不宜过大或过小,过小点云重叠、画面模糊;过大点云有间隙,纹理就看不清
|
|
|
//中间部分75-80为佳,文字100,边缘50. 最好支持调节 . 且当下载尺寸变大往往点云也多,可能冲破pointbudget限制
|
|
//中间部分75-80为佳,文字100,边缘50. 最好支持调节 . 且当下载尺寸变大往往点云也多,可能冲破pointbudget限制
|
|
|
//let text = `1 : ${(1 / camera.zoom).toFixed(4)}(像素 : 米)`
|
|
//let text = `1 : ${(1 / camera.zoom).toFixed(4)}(像素 : 米)`
|
|
@@ -696,7 +698,7 @@ var Clip = {
|
|
|
|
|
|
|
|
|
|
|
|
|
//分块渲染截图,最后拼合图片。需要使每一块的点数不超过pointBudget, 且尺寸不超过4096(会崩溃),过小的话一般不会超过pointBudget,除非是深度较大后排点云多。
|
|
//分块渲染截图,最后拼合图片。需要使每一块的点数不超过pointBudget, 且尺寸不超过4096(会崩溃),过小的话一般不会超过pointBudget,除非是深度较大后排点云多。
|
|
|
- let r = THREE.Math.clamp(Math.sqrt(3.5e7 / boundSize.z) * s, 1024, 4096); //每多少米分一块。 推理 wc*hc = w / r * h / r = zoom * w * s * zoom * h * s / r^2 = xyz / V(常数,每多少立方米会超出pointBudget,就是括号里的数字,给大概值)
|
|
|
|
|
|
|
+ let r = THREE.Math.clamp(Math.sqrt(3e7 / boundSize.z) * s, 1024, 4096); //每多少米分一块。 推理 wc*hc = w / r * h / r = zoom * w * s * zoom * h * s / r^2 = xyz / V(常数,每多少立方米会超出pointBudget,就是括号里的数字,给大概值)
|
|
|
//let r = THREE.Math.clamp(1024 / boundSize.z, 256, 4096);
|
|
//let r = THREE.Math.clamp(1024 / boundSize.z, 256, 4096);
|
|
|
|
|
|
|
|
let wc = w / r //横向块数
|
|
let wc = w / r //横向块数
|
|
@@ -716,8 +718,8 @@ var Clip = {
|
|
|
//因为focusOnObject时有最小边界,所以当box很小时截图区域不止box
|
|
//因为focusOnObject时有最小边界,所以当box很小时截图区域不止box
|
|
|
let cameraBoundSizeX = ruler.right-ruler.left
|
|
let cameraBoundSizeX = ruler.right-ruler.left
|
|
|
meterPerPixel = cameraBoundSizeX / w
|
|
meterPerPixel = cameraBoundSizeX / w
|
|
|
- let zoom = viewer.mainViewport.camera.zoom
|
|
|
|
|
- material.size *= Math.min(zoom / minZoom, 10 );//限制一下,避免测试时界面点云很小,截图点云很大
|
|
|
|
|
|
|
+ /* let zoom = viewer.mainViewport.camera.zoom
|
|
|
|
|
+ material.size *= Math.min(zoom / minZoom, 10 );//if size fixed 限制一下,避免测试时界面点云很小,截图点云很大 */
|
|
|
//}
|
|
//}
|
|
|
}
|
|
}
|
|
|
|
|
|