Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tileset being selected for rendering on the other side of the globe? #8612

Open
mramato opened this issue Feb 13, 2020 · 10 comments
Open

Tileset being selected for rendering on the other side of the globe? #8612

mramato opened this issue Feb 13, 2020 · 10 comments

Comments

@mramato
Copy link
Contributor

mramato commented Feb 13, 2020

  1. Start this Sandcastle Which loads the Montreal tileset. It also has a postRender event registered which prints out the number of montreal tiles selected for rendering whenever the selected value changes.

  2. Type Jamaica into the geocoder and fly there. (Still 0 tiles selected for rendering)

  3. Tilt the camera towards the horizon, you'll notice that the root tile of Montreal gets selected, even though it is well below the horizon practically on the other side of the earth. Zooming in close to the ground doesn't fix this either, the moment you are looking at the horizon, it selects the tile.

This seems to happens whether terrain or depthTestAgainstTerrain is on or off, so I don't think that's the problem. @likangning93 thinks maybe something is wrong with horizon culling?

@mramato
Copy link
Contributor Author

mramato commented Feb 13, 2020

@lilleyse or @loshjawrence any ideas what might be causing this?

@loshjawrence
Copy link
Contributor

Even if horizon culling is the culprit, I'm surprised that sse is satisfied for the root tile that far away.

@lilleyse
Copy link
Contributor

lilleyse commented Feb 13, 2020

3D Tiles doesn't do ellipsoid horizon/occlusion culling currently, just frustum culling. We should copy what terrain/imagery does.

@mramato
Copy link
Contributor Author

mramato commented Feb 13, 2020

@lilleyse any change we can get to this before the next release?

@likangning93
Copy link
Contributor

Even if horizon culling is the culprit, I'm surprised that sse is satisfied for the root tile that far away.

I live in Montreal and went on vacation in Jamaica, why can I see my house from here?!

@lilleyse
Copy link
Contributor

Workaround in Sandcastle in case anyone needs to reference it in the future. Not as good as computing per tile horizon occlusion points though:

Sandcastle

@mramato
Copy link
Contributor Author

mramato commented Dec 27, 2022

Just retested this, hoping it would b fixed. I had to go to Florida instead of Jamaica, but it still ends up selecting the tile even when it's nowhere near the camera view

@kring
Copy link
Member

kring commented Dec 29, 2022

In cesium-native, we don't do horizon culling at all, because using the ellipsoid is an occluder is unreliable when terrain and photogrammetry may be below it. However, a tile like this on the other side of the globe will get culled by fog. Could be worth doing something similar in CesiumJS if we're not already.

@mramato
Copy link
Contributor Author

mramato commented Jan 5, 2023

Funny you say that, since fog has the opposite problem in CesiumJS: #8454

@lilleyse Have these two issues been around for so long because they are hard to fix? Or have they just not been a priority? Seems like a solid improvement when it comes to performance and tile selection.

CC @ggetz @sanjeetsuhag

@kring
Copy link
Member

kring commented Jan 9, 2023

There's a good chance cesium-native has that fog culling artifact as well, since the implementation is the same. I've never noticed it, though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants