
This is practically the same issue that cjio has. Geometries are deformed because the whole transform is applied very early in the process. This leads to floating point inaccuracies.
To reproduce the problem, load files in CityJSON Ninja (which uses cityjson-threejs-loader), and notice the difference. The test files are below
simplified2.city.json
simplified2_less_translation.city.json
My suggested solution is to only apply the scale from the transform at first, do all the processing normally, and then add the translation afterwards to the position of loader.scene (or if there's a better root node, then that).
This is practically the same issue that cjio has. Geometries are deformed because the whole transform is applied very early in the process. This leads to floating point inaccuracies.
To reproduce the problem, load files in CityJSON Ninja (which uses cityjson-threejs-loader), and notice the difference. The test files are below
simplified2.city.json
simplified2_less_translation.city.json
My suggested solution is to only apply the scale from the
transformat first, do all the processing normally, and then add thetranslationafterwards to thepositionofloader.scene(or if there's a better root node, then that).