For this one by the way: We can reproduce this still but it takes some time and precision

Anyways, by commenting out the following code fixed everything for us “magically”… I am not really sure what is this code for:

Camera.prototype._adjustOrthographicFrustum = function(zooming) {

if (!(this.frustum instanceof OrthographicFrustum)) {

return;

}

if (!zooming && this._positionCartographic.height < 150000.0) {

return;

}

if (!Matrix4.equals(Matrix4.IDENTITY, this.transform)) {

this.frustum.width = Cartesian3.magnitude(this.position);

return;

}

var scene = this._scene;

var globe = scene._globe;

var rayIntersection;

var depthIntersection;

/*

// !!! This broke orhto mode zoom badly !!!

if (defined(globe)) {

var mousePosition = scratchAdjustOrtghographicFrustumMousePosition;

mousePosition.x = scene.drawingBufferWidth / 2.0;

mousePosition.y = scene.drawingBufferHeight / 2.0;

var ray = this.getPickRay(mousePosition, pickGlobeScratchRay);

rayIntersection = globe.pick(ray, scene, scratchRayIntersection);

if (scene.pickPositionSupported) {

depthIntersection = scene.pickPositionWorldCoordinates(mousePosition, scratchDepthIntersection);

}

if (defined(rayIntersection) && defined(depthIntersection)) {

var depthDistance = defined(depthIntersection) ? Cartesian3.distance(depthIntersection, this.positionWC) : Number.POSITIVE_INFINITY;

var rayDistance = defined(rayIntersection) ? Cartesian3.distance(rayIntersection, this.positionWC) : Number.POSITIVE_INFINITY;

this.frustum.width = Math.min(depthDistance, rayDistance);

} else if (defined(depthIntersection)) {

this.frustum.width = Cartesian3.distance(depthIntersection, this.positionWC);

} else if (defined(rayIntersection)) {

this.frustum.width = Cartesian3.distance(rayIntersection, this.positionWC);

}

}

if (!defined(globe) || (!defined(rayIntersection) && !defined(depthIntersection))) */

{

var distance = Math.max(this.positionCartographic.height, 0.0);

this.frustum.width = distance;

}

};