Cesium: CLAMP_TO_GROUND for Billboards incorrect positions

Created on 21 Dec 2016  路  7Comments  路  Source: CesiumGS/cesium

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.

category - billboards priority - high type - bug

All 7 comments

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.

Was this page helpful?
0 / 5 - 0 ratings