I tested the Pointcloud-format today.
Could anyone tell me if the former box-format works ?
All examples use the sphere as boundingVolume. In my former examples (cesium 1.16)
I used the box-format. According to a comment of Patrick I changed this to "region" but it didn't work. Do I have to specify the RTC in addition.
Could anyone send me an example with region in tileset,json and pnts-file ?
The old format used the bounding volume’s center as the relative-to-center value.
Your region should be fine. But in the new format you will need to specify the RTC_CENTER yourself in the feature table: https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/TileFormats/PointCloud.
To calculate the center for a region, you can do something like:
var west = region;
var south = region;
var east = region;
var north = region;
var minHeight = region;
var maxHeight = region;
var longitude = west + (east - west) / 2.0;
var latitude = south + (north - south) / 2.0;
var height = minHeight + (maxHeight - minHeight) / 2.0;
Cesium.Transforms.headingPitchRollToFixedFrame(Cartesian3.fromRadians(longitude, latitude, height), 0.0, 0.0, 0.0);
I don’t actually have an example for pnts using a region, but most of the examples in Cesium/Specs/Data/Cesium3DTiles/PointCloud are using RTC_CENTER.
thank you for the answer -
so if I use region in the tileset.json I have to set the RTC in the points.pnts
--> please change the spec that the RTC is required !?
--> cost me another 2 hours
is it right that the RTC has been in ECEF coordinates ?
Yes RTC is ECEF.
RTC is not required by the spec. For example an alternative to using RTC is using a tile transform: https://github.com/AnalyticalGraphicsInc/3d-tiles#tile-transform
what do you mean ?
If I use region I have either specify a RTC or a transform.
To what should I transform ?
In the old format 1.16 the specification with a box (in lat, long, height) was enough (under the circumstances, that the model is localized in the way you have described in the mail 18. Nov for the calculation of the RTC).
My understanding of a documentation is that everything I need is required. So if I don't have the RTC nor the transformation noting is displayed !
So some hints would be great !
There’s basically three options:
- Define points locally and use RTC_CENTER
- Define points locally and use a tile transform for the root tile in tileset.json. This matrix can be computed like the Transforms.headingPitchRollToFixedFrame code above.
- Define points in ECEF (WGS84) directly, without RTC_CENTER or a transform. This works but the lack of precision with 32 bit floats will cause jittering issues.
If your points are defined locally and you do not have RTC_CENTER or a tile transform, then the point cloud will be located at the center of the Earth. So I do recommend using either RTC_CENTER or a tile transform.