3d-tiles Vertical Flicker China sikong2

中文:

国内平台直接用这个创建3D建模,会出现模型垂直的问题,解决方案是:修改3D瓦片的json的内容:修改json文件里的 root:transform的内容,按照x-90的角度旋转,就是平面的3D模型,然后不加任何配置,会出现闪烁问题;如果你要以后都修改json的内容的话,可以修改项目下:nodeodm\external\NodeODM\scripts\postprocess.sh这个文件,这个切片导出的文件,让ai在导出时,直接修改对应的文件;还有注意一点:NodeODM是github上面另外一个项目,任何修改,docker要另外部署,或者动态加载;
任何接下来就是解决闪烁问题:orthophoto-resolution这个核心的参数,是正射影像的切片大小的参数,同时也影响3d-tiles的闪烁问题;默认是5,太小了;推荐写成20-30,3D就能正常加载;
auto-boundary-distance这个参数:也影响对应的加载范围,能避免视角外的模型,大面积消失,但内存存储会增加。
但下一个问题是:3D-tiles瓦片很大,加载会变慢,也是有些许的闪烁,所以可以降低配置:比如下面的我的配置:
" { \“name\”: \“3d-tiles\”, \“value\”: true },\n" +
" { \“name\”: \“mesh-octree-depth\”, \“value\”: 6 },\n" +
" { \“name\”: \“mesh-size\”, \“value\”: 900000 },\n" +
" { \“name\”: \“auto-boundary-distance\”, \“value\”: 175 },\n" +
" { \“name\”: \“skip-orthophoto\”, \“value\”: true },\n" +
" { \“name\”: \“orthophoto-resolution\”, \“value\”: 28 }\n" +
“]”;

English translation:

"For domestic platforms, directly using this to create 3D modeling may result in model verticality issues. The solution is to modify the contents of the 3D Tiles JSON file: modify the root.transform content in the JSON file, applying a rotation of X-90 degrees to make it a planar 3D model. If you add no further configuration, flickering issues will occur.

If you want to permanently modify the JSON content in the future, you can modify the following file in the project: nodeodm\external\NodeODM\scripts\postprocess.sh. This file handles the exported tile files, allowing AI to directly modify the corresponding files during export. Also note: NodeODM is another project on GitHub. Any modifications require Docker to be redeployed or dynamically loaded.

Next, to resolve the flickering issue: orthophoto-resolution is a core parameter. It controls the tile size of orthophotos and also affects the flickering of 3D Tiles. The default value is 5, which is too small. It is recommended to set it to 20–30, and then the 3D model will load properly.

The auto-boundary-distance parameter also affects the loading range. It can prevent large-area disappearance of models outside the view frustum, but at the cost of increased memory usage.

However, the next problem is that 3D Tiles are large, leading to slower loading and some residual flickering. Therefore, you can lower the configuration. For example, here is my configuration:
{ “name”: “3d-tiles”, “value”: true },
{ “name”: “mesh-octree-depth”, “value”: 6 },
{ “name”: “mesh-size”, “value”: 900000 },
{ “name”: “auto-boundary-distance”, “value”: 175 },
{ “name”: “skip-orthophoto”, “value”: true },
{ “name”: “orthophoto-resolution”, “value”: 28 }

模型垂直是因为生成OBJ时默认是y轴朝上,导致生成3D tiles时仍然是y轴朝上。我试过修改root:transform的内容,并没有修复这个问题。我的解决办法是重新编译了Obj2Tiles,将--y-up-to-z-up的默认值设置为ture,然后替换掉ODM安装目录下的Obj2Tiles

1 Like

你好,可以问下Obj2Tiles你们还做了哪些修改,我们目前发现生成的3Dtiles模型LOD层数很少,模型加载起来很慢,不知道你们有没有遇到同样问题。