-
Notifications
You must be signed in to change notification settings - Fork 3
2017_06_12_ _Temporal_Itowns
It might be interesting to introduce ourselves and to say what we would like to add to Itowns. We can also say that we would be happy to be helped in these developments and to have feedback about them. This can be done using the mailing list of Itowns.
- Before starting coding, open an issue on github about:
- What we want to do about temporality in Itowns
- How we might do it (First proposition)
-
Provider: how do we get the data, how do we initialize it.
-
Process (folder in src): Holds all the processes of Itowns. Each layer has one update() function (and one preupdate()). This function (update()) is customizable and can call any process. When the scene is updated (when the camera moves or when something changes in the scene), the update() function is triggered.
-
Each file of this folder contains processes grouped by thematic. These files can also contain the update function (not mandatory).
- preupdate() function:
- called when the scene is updated the first time (update function is not called at this moment).
- preupdate is used for initializations and computations only needed once.
- returns a list of the first tiles which will be updated.
- Then the update() function is triggered on these tiles.
- update() function
- called on all the tiles that need updating.
- The update() function also returns a list of tiles. These tiles are also updated.
- And so on until update() doesn't return any tile.
- JGA: We probably need to create a new update function which uses old processes plus new ones allowing to handle temporality. We might also need to modify some processes (e.g. culling) which won't be the same with temporality.
-
JGA : There might be no protocols handling urban temporal data. If not, we might need to contribute to 3d-tiles (whose developers envisioned a temporal aspect
-
JGA advice about how to transfer temporal data from server to Itowns via 3d-tiles protocol: send the temporal info (start date, end date) using metadata part of the tileset. This allows knowing if the data is valid (according to its temporal info) before loading it.
-
Possible problem: The data is grouped by tile which only contains geometry (not grouped by semantic). In order to only visualise some geometries of these tiles depending on which ones correspond to objects which have a valid time we need to check in the shader if the geometries have a valid temporal information.
- In 3d-tiles standard there is a feature table and a batchtable. One of them allows to add semantic data and to link it to the geometry. This is not implemented yet in Itowns.
About the scene graph/tree:
- it represents the geometric data organized in a tree
- example: the children can represent more detailed data in case of an increasing LOD representation.
- the tree can be created using semantic information (e.g. most important buildings at the top and less important ones at the leaves). But it only contains information about when the data at these levels will be loaded. (Mainly)