fanvanzh / 3dtiles

The fastest tools for 3dtiles convert in the world!
Apache License 2.0
1.98k stars 594 forks source link

中间挖空的shp转换为3Dtiles错误的问题! #170

Open weiyu666 opened 3 years ago

weiyu666 commented 3 years ago

对于中间有空,环状的shp文件生成的3Dtiles 现在不支持,凡是中间挖空的都不行! 原始的shp文件如下: 024866E6-DE68-4930-9331-59A9010EDC1F 生成的效果(已经从b3dm逆向转回gltf)效果: image

理想的效果如下: DB7CCFC9-2625-4993-B21D-FEE139F51AD7

fanvanzh commented 3 years ago

不好解决

weiyu666 commented 3 years ago

@fanvanzh 别这样说,有没有什么方法思路什么的能解决这个的?还有你convert_polygon 函数里面获取shp的底点坐标 为什么这里又重复来一次?int inner_count = polyon->getNumInteriorRings();

fanvanzh commented 3 years ago

这部分处理过程大概是这样的: 1、先处理 polygon 拉起来的顶部和底部,把 polygon 三角化。 2、处理拉起来的竖立面,这部分就是把每一个矩形外立面拆分两个三角形。

你贴的图能看到带洞的面,说明 带洞的 polygon 三角化 应该没问题。 你试试是不是 步骤2 里的,内环拉起来的内立面的法线方向问题?

weiyu666 commented 3 years ago

确实带洞的面是可以生成的没有问题!至于他拉起来的问题 是shp文件设置的时候没有给他高度值只有高度值段!拿cesiumlab查看看不出来,应该是cesium.js本身的问题;下图是cesiumlab生成的 6E7B2EA2-C6D4-44c9-8F7D-FDDD14603E5A 下图是我自己生成的在cesium版本 1.79.1展示的,感觉是gltf还有他版本的问题! 16AA944C-64F9-4e48-8B3E-DE68F8B5EA8D

fanvanzh commented 3 years ago

高度为0的几何体可能渲染会有问题,可能会出现顶面和底面显示混乱。