You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have been studying the mechanism of placing tiles in 3D Tiles definition. And I have some ideas about the matrix(or the coordinate frame).
I have been thinking where the matrix place if the glb in b3dm is just in local coordinate frame. At first, I think the matrix should be placed at Feature Table of b3dm where the BATCH_LENGTH is, such as {"Local_Coordinate_Frame" : [Xx, Xy, Xz, 0, Yx, Yy, Yz, 0, Zx, Zy, Zz, 0, RTCx, RTCy, RTCz, 1]}(if it is an identity matrix, this can be omitted). But it may improper to put it here. So i have a thought to add a extension named "Cesium_LCF" to the glb in b3dm instead of Cesium_RTC.
Create a new extension in glTF to implement the glb(at the local coordinate frame) in b3dm to transform to the surface of the earth(at the whole coordinate frame). Here I want define a extension named "Cesium_LCF"(LCF, Local Coordinate Frame), which is similar to "Cesium_RTC" but is much stroger than that. "Cesium_LCF" is equivalent to add a rotate_translate matrix(4x4) while "Cesium_RTC" is equivalent to add a translate matrix(4x4). The setting of "Cesium_LCF" is adding the matrix(4x4)(an array contains 16 elements) to the extensions of glTF and Cesium need to implement resolving this extension in glb in b3dm, just like "Cesium_RTC". With this setting, matrix in the {tileset.json} is not needed and Cesium can load b3dm depend on b3dm itself. Other modeling software(3ds Max etc. whose target is at the local scene) do not need to resolve "Cesium_LCF" and they can create, load, edit glTF or b3dm in local coordinate frame just like ArcScene(ArcGIS).
The aim of the whole thought I have mentioned is to separate the LCF matrix from the index file(tileset.json) and the model file(glb in b3dm). Is it easy that placing the matrix to Feature Table and letting Cesium to implement moving the glb? Or create the extension of "Cesium_LCF"?
It is emphasized that this thought is just for the application of buildings. If a tileset is represented as BIM, for example, it will be better I think to place the matrx at tileset.json. In this case, 3D Tiles is not used to represent geo-spatial feature dataset in large space so it can do as their own BIM design structure. I think more discussions by people from different professions and applications can make things more reasonable. @pjcozzi@lilleyse
The text was updated successfully, but these errors were encountered:
I have been studying the mechanism of placing tiles in 3D Tiles definition. And I have some ideas about the matrix(or the coordinate frame).
I have been thinking where the matrix place if the glb in b3dm is just in local coordinate frame. At first, I think the matrix should be placed at Feature Table of b3dm where the BATCH_LENGTH is, such as {"Local_Coordinate_Frame" : [Xx, Xy, Xz, 0, Yx, Yy, Yz, 0, Zx, Zy, Zz, 0, RTCx, RTCy, RTCz, 1]}(if it is an identity matrix, this can be omitted). But it may improper to put it here. So i have a thought to add a extension named "Cesium_LCF" to the glb in b3dm instead of Cesium_RTC.
Create a new extension in glTF to implement the glb(at the local coordinate frame) in b3dm to transform to the surface of the earth(at the whole coordinate frame). Here I want define a extension named "Cesium_LCF"(LCF, Local Coordinate Frame), which is similar to "Cesium_RTC" but is much stroger than that. "Cesium_LCF" is equivalent to add a rotate_translate matrix(4x4) while "Cesium_RTC" is equivalent to add a translate matrix(4x4). The setting of "Cesium_LCF" is adding the matrix(4x4)(an array contains 16 elements) to the extensions of glTF and Cesium need to implement resolving this extension in glb in b3dm, just like "Cesium_RTC". With this setting, matrix in the {tileset.json} is not needed and Cesium can load b3dm depend on b3dm itself. Other modeling software(3ds Max etc. whose target is at the local scene) do not need to resolve "Cesium_LCF" and they can create, load, edit glTF or b3dm in local coordinate frame just like ArcScene(ArcGIS).
The aim of the whole thought I have mentioned is to separate the LCF matrix from the index file(tileset.json) and the model file(glb in b3dm). Is it easy that placing the matrix to Feature Table and letting Cesium to implement moving the glb? Or create the extension of "Cesium_LCF"?
It is emphasized that this thought is just for the application of buildings. If a tileset is represented as BIM, for example, it will be better I think to place the matrx at tileset.json. In this case, 3D Tiles is not used to represent geo-spatial feature dataset in large space so it can do as their own BIM design structure. I think more discussions by people from different professions and applications can make things more reasonable.
@pjcozzi @lilleyse
The text was updated successfully, but these errors were encountered: