Open Joebh opened 7 years ago
Thanks @Joebh, I was able to reproduce this.
It doesn't happen every time, but occasionally some of the points doesn't get clamped to the terrain.
Here is a code example:
var viewer = new Cesium.Viewer('cesiumContainer');
viewer.terrainProvider = new Cesium.VRTheWorldTerrainProvider({
url : 'http://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/',
credit : 'Terrain data courtesy VT MÄK'
});
var lon = -122.1957;
var lat = 46.1914;
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
viewer.entities.add({
position : Cesium.Cartesian3.fromDegrees(lon + i*0.0001, lat + j*0.0001),
point : {
color : Cesium.Color.RED,
pixelSize : 10,
heightReference : Cesium.HeightReference.CLAMP_TO_GROUND
}
});
}
}
Is this the same issue as #4598?
I could still reproduce it with the fix in #4622, so I don't think it's the same issue
Is this the same issue as #4598?
Issue #4598 is a position offset of clamped billboards and here the problem is, actually, that the billboards don't get clamped to the current level of terrain (as @hpinkos wrote).
It's caused by the fact that billboards don't get updated in some conditions (points 2,3,4 in #4686, and maybe additional problems).
It occasionally happens also with STK Terrain. I was able to reproduce this by removing the cache and putting the camera close, before the loading start (to increase the chance of using upsampled tiles).
Came on the forum: https://groups.google.com/forum/#!topic/cesium-dev/NroeiSFxKFw
Cam up again on the forum: https://groups.google.com/forum/#!topic/cesium-dev/kQiuFbnTpSQ
I can confirm I am having the same issue.
I, don't know if it is related to the same bug but billboards doesn't clamp to ground at all when terrain provider is ArcGISTiledElevationTerrainProvider. They behave correctly when provider is of type returned by Cesium.createWorldTerrain(). Is it a known issue?
When using a terrain provider that uses a heightmap terrain format, the CLAMP_TO_GROUND property produces incorrect positions for billboards. It is easier to see when there are more billboards placed. I can get it to happen every time when there are 10 billboards on the globe.
I've tested with the terrain provider at https://cesiumjs.org/smallTerrain. This is not an issue when the terrain provider provides a quantized mesh format.
I'm using the current 3d-tiles branch at revision 31cf664a04881bc618f468043370f8fcd254859b.