ka_sc
July 18, 2020, 1:08am
8
We havent quite decided yet but the camera limiter approach seems the most promising.
For limiting zoom i looked at these but i am still confused.
I have modified this sandcastle a little bit, with the settings of the viewer, which are used in our case and set ._maximumUndergroundPickDistance to 80000.0
Unfortunately, I can’t restore the old (<1.70) camera behavior with this setting.
The area marked as “1” in the screenshot above is slightly extended by modifying this setting, but as soon as the camera is just a little bit deeper in the space of the earth’s interior, the camera turns around itself again when clicking the mouse wheel, lik…
Whats the unit of _maximumUndergroundPickDistance for example?
cameraController._maximumUndergroundPickDistance = 80000.0;
CesiumGS:master
← CesiumGS:camera-underground-controls
opened 04:03PM - 29 Apr 20 UTC
Opening this PR for early testing. There's still some work to be done, especiall… y for panning. While I had the urge to rewrite `ScreenSpaceCameraController` I took the opposite approach and just modified camera behavior when underground. Above ground controls should be the mostly same, for better or for worse.
At a high level the changes include:
- Added ability to zoom into the ground, like submerging below the terrain. This happens by default if `enableCollisionDetection` is false and `minimumZoomDistance` is greater than 0.0. I'm occasionally noticing large jumps which I still need to fix.
- Changed zooming, rotating, and panning behavior when underground. There's a new property in `ScreenSpaceCameraController` called `undergroundSurfaceHeight` which acts as an invisible ellipsoid that's used to improve camera navigation when underground. For best results the height should be set just below the height of underground entities in the scene.
- When underground, the zoom distance is now determined by the position over the mouse's cursor rather than the position at the center of the screen. This should make it a lot easier to navigate to underground datasets.
- Fixed what seemed like a kludge in the camera panning code which had the side effect of panning every other frame. Basically panning felt like 30hz while other camera controls felt like 60hz. Panning feels so much smoother now.
[Local sandcastle for testing](http://localhost:8080/Apps/Sandcastle/index.html#c=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)

@fredj @gberaudo
Looks like undergroundSurfaceHeight got removed again in the end, in favour of:
If someone needs an underground distance limiter, it might make more sense for them to place a large underground ellipsoid. Is this an example on how to that Cesium Sandcastle ? And can you have collision with that ellipsoid then?