VCityTeam / py3dtilers

Tilers accepting various input formats (OBJ, 3DCity databases, GeoJson, IFC) and producing 3DTiles tilesets.
Other
186 stars 50 forks source link

Enable multi lod contruction of multi-level OBJ files #140

Closed EricBoix closed 9 months ago

EricBoix commented 1 year ago

Consider the set of OBJ files representing the same textured object (a monkey considered as a city sculpture) but at different levels of resolution. Provide py3dtilers with the ability to load such set and construct a LOD hierarchy where each resolution level stands at a different LOD level (think of Russian dolls). Then realize a py3dTilers demo placing the newly build multi-LOD monkey in a visible place of the City and calibrate the Geometric error (when needed) so that zooming on the monkey displays enhanced levels of resolution.

Notes: refer to --geometric_error and --texture_lods tiler options to possibly become --geometric_lods together with --geometric_error for the OBJTiler...

LorenzoMarnat commented 1 year ago

@EricBoix I started to work on that on obj_lods branch. If the flag --as_lods is present, the input models we be placed in a vertical hierarchy. The first input model will be the leaf of the hierarchical tree, the last will be the root.

To create a hierarchy from OBJ models at different resolutions:

obj-tiler -i G:\Data\Obj\monkey_objs\ -o monkey_3dtiles --as_lods --scale 3 --offset 1843397 5173891 300 --geometric_error 1 4 8 13 21

monkey_objs contains sorted OBJ models. The first OBJ model is the most detailled one, the last the least detailled

e0b297906941faf19b59a3f9dd92a142

elombardi2 commented 1 year ago

The implementation is validated for GRIM demo at commit 2d0c2c5 of branch obj_lods. Branch obj_lods could be merged into master.