-
Notifications
You must be signed in to change notification settings - Fork 3
How to add new format to vts? #7
Comments
Hi, there's no document about the low-level data storage in VTS (yet). If you need to convert (static) hierarchical mesh into VTS surface (which is what majority of the tools in this repo do) is to map input meshes to VTS reference frame, cut it into individual tiles and then to build VTS tileset (which is the actual implementation behind VTS surface). Each tile has:
There's also a tree of metatiles but it gets complicated. You can inspect existing tileset via As a basis of your custom encoder you can use |
NB: VTS is resolution-based so things that look alike shoud be at the same level od detail. Our common approach between mapping tile texture resolution (area of 3D mesh divided by texture mesh area in pixels, i.e. m/px) is:
NB: all measurement and cutting is done in the local space division SRS of VTS tile subtree. If used reference frame has multiple subtrees ( |
Hi, @vaclavblazek. Thanks very much for your kindly explaining. We want to add normal FBX file to VTS for streaming. In past 2 weeks, We tried to covert FBX to 3dtiles or lodtree before inporting to VTS. As VTS already support 3dtiles and LODtree. Do you have any suggestion to streaming FBX or other 3D fomat models, bease on VTS stack. We want to streaming static mesh. Or otherwise we have to write a encoder for VTS? |
BTW: We have some slpk test files. Is it the same to read slpk2vts.cpp. for the same popurse. |
Writng your own VTS streaming would be too hard, tiles would have to be cut on the fly and even vts-mapproxy needs some preprocessing to do it for raster formats (DEM, orthophoto). If it is static, convert it to VTS. You can go either the your data -> 3D Tiles/SLPK -> VTS way or you can write your own convertor. Using intermediate format would be easier. Or, your can use However, be aware that any way you use you need to have the input in multiple leves of detail (LODs) available. There's no VTS tool that decimates meshes Also, all the VTS tools expect that the LODs follows (roughly) the power of two rule: e.q. if the original has resolution 1 cm/px then the first LOD should be (around) 2 cm/px, next one (aroun) 4/px cm etc. We have provided a sample dataset for evaluation, interoperability testing and education purposes at https://cdn.melown.com/pub/example-datasets/benatky-nad-jizerou/ -- there are 3D Tiles, SLPK, VTS and VEF versions of the same dataset available here. Please, consult the |
Re SLPK vs 3D Tiles: 3D Tiles is an open format and actually it's an OGC standard. While SLPK is documented you have to use commercial SW (ArgGis Pro) or commercial web service (ArcGis Online) to display it (or use VTS, of course :) ). I'd go with 3D Tiles. |
Thanks @vaclavblazek , The datasets are very very useful! |
Hi @vaclavblazek , after reading the VEF format spec. I didn't understand that the relation between VEF's lod and VTS's Level info. For for database vef file. |
Each window's LOD list starts with "original", i.e. the first entry in the When Then, each mesh is converted to spatial division SRS ( The input LOD/VTS LOD assignment (for any dataset type, not only VEF) is computed only for original/best mesh, all other input LODs always map linearly above the original (the tree root 0-0-0 is at the top). As a side effect, this introduces the soft constraint that input dataset's quality drop between individual LODs should be around 0.5, if possible. (*) Just FYI, it's a bit complicated, in the case of a complex reference frame (like |
As a sidenote: VTS is visually oriented and the main driving factor behind visualizing data is resolution. Mesh geometry detail is irrelevant, the only important thing that tells VTS encoders where to map data and the VTS browser what to render is data (mesh) resolution. |
Thanks. Got it. I want to know the behavior is required or recommended. Because maybe I will try to put a whole city in single one obj file. In VEF format a single window. |
You can have single window. No need to precut. Our own reconstruction software splits input into "reconstruction windows" so our output the format is suited to handle it. However, if you put single city in one huge mesh the processing time may considerably increase since |
Hey, I want to convert new format to vts.
Is there any docment for how to do this? Or how the data is store in VTS?
The text was updated successfully, but these errors were encountered: