ThatOpen / engine_components

MIT License
328 stars 129 forks source link

Make fragments more scalable with tiles #169

Closed agviegas closed 4 months ago

agviegas commented 11 months ago

Description šŸ“

Currently, geometries are generated as a single binary file created with flatbuffers. This has the downside that the whole model data is handled as a whole and therefore consumes a lot of memory and has limitations such as:

Suggested solution šŸ’”

Some time ago, we implemented a POC for "BIM tiles", allowing to lazily load only items that were visible for the user. This is a deep rabbit hole, and an ideal solution would involved a geometry database that can stream the geometries.

I believe we should go for the easiest possible approach for a first step:

  1. Generate the bounding boxes of all geometries of the building in fragments.
  2. Make a special culler for bounding boxes.
  3. Instead of loading the whole .frag file, cache the it locally using indexedDB.
  4. Request sets of geometry to the .frag file as they are discovered in the bounding box culler.

A longer term solution should probably be like this:

Alternative ā›•

No response

Additional context ā˜ļø

No response

Validations āœ…

RyugaRyuzaki commented 10 months ago
agviegas commented 10 months ago

I'm investigating this these days, let's see if I can come up with something before the end of this week!

agviegas commented 4 months ago

Done! See here.