Hi all,
When a camera FlyTo is setup to fly a real short distance (i.e. ‘1 pixel’), we get a constant flickering of a black line in the center of the screen (reproduction case is below). This line can be horizontal or vertical, or both, depending on the coordinates.
The coordinates are related to the borders of the tile. We only found cases when the tile line is exactly in the center of the screen.
We did experiment with:
-
Different locations (very limited to locations)
-
Different heights (500 m, 1000m, 5000m). It is easier to get a reproduction case on 500m in comparison to 5000m, slightly different behaviour.
-
Different map providers (Bing, ESRI)
-
Different browsers (Edge, Internet Explorer 11, Chrome, all compatible with below code example, slightly different behaviour)
-
Different hardware (4 laptops, 3 desktops, all compatible with below code example, slightly different behaviour)
-
Different Screen Resolutions (1920 x 1080, 3840 x 2160, all compatible with below code example, slightly different behaviour)
The different behaviours are related to:
-
The length of the black line
-
The width of the black line (not completely verifyable, but sometimes it seems rather 2-3 pixels, instead of 1).
-
The number of flickers (1-3).
We did not experiment with:
-
other positions as North-up.
-
Specific camera movements
Does anyone have a solution for this behaviour?
With regards,
Jeroen van Onzen
Steps to reproduce:
Copy the following code in a sand castle project:
var viewer = new Cesium.Viewer(‘cesiumContainer’);
var scene = viewer.scene;
var clock = viewer.clock;
function FlyTo() {
viewer.camera.flyTo({
duration: 10,
complete: function() { FlyTo2(); },
destination : Cesium.Cartesian3.fromDegrees(0,14.7975, 500.0)});
// destination : Cesium.Cartesian3.fromDegrees(0, 14.7975, 5000.0)});
}
function FlyTo2() {
viewer.camera.flyTo({
duration: 10,
complete: function() { alert(‘End’); },
destination : Cesium.Cartesian3.fromDegrees(0.00001, 14.7975, 500.0)});
// destination : Cesium.Cartesian3.fromDegrees(0.0001, 14.7975, 5000.0)});
}
FlyTo();
``