-
Notifications
You must be signed in to change notification settings - Fork 196
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
Tiles: Memory adjusted screen space error #2851
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting up this PR. I suppose we should also update docs and add at least one test.
I am starting to see a pattern where contributors copy in feature X or feature Y from CesiumJS.
- Not sure how easy it would be to create, but for my review and planning purposes it would be helpful to have a list of all missing features so we can track against something, right now I am not sure how much of this to expect...
getter. - Remove the `memory exceeded` flag (no use of it was detected). - Combine screen space adjustment function to one `adjustScreenSpaceError()` function.
Thanks for the review! Pushed an update and posted some comments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is OK to merge. That said:
- Shouldn't we add something to the docs?
- Worth mentioning this as a bullet in the v4.1 release notes (docs/whats-new.md)?
- Also, showing the current screenspaceerror in the stats object should be a minimal change and would be nice so we can track how it changes.
Thanks!
That one is already in the PR (MAXIMUM_SSE stat). Regarding a docs update. I could run through that when I make the PR for the typescript cleanup. |
@ibgreen: two comments about this PR.
Thanks! |
|
@ibgreen @Avnerus v4.1.0-alpha.10
Your PR is in there @Avnerus 👍 |
Awesome! Thank you @dsavinov-actionengine . @ibgreen ,
I won't be able to work on that for now, but if you'd like I could open an issue, referencing my three.js implementation. |
Hi,
Opening this PR for feedback, even though this is still a work in progress.
Based on the CesiumJS implementation, I added basic functionality for memory adjusted SSE. The screen space error is adjusted based on the specified maximum GPU memory boundary. I think this feature is crucial for getting tilesets to work on mobile, especially iPhone, because Safari crashes immediately when too much GPU memory is allocated.
I made the feature optional with the
memoryAdjustedScreenSpaceError
flag (though in CesiumJS it's always on).Some caveats:
memoryCacheOverflow
option. For example, I noticed that Cesium uses a 1MB overflow for Google 3D Tiles, and it works well here too. But when I tried it on a point cloud it didn't work well. I noticed there is also an open issue in Cesium about this behavior.I also added the screen space error value to the statistics, since it's very useful to see how it's adjusted.
Finally, note that I removed the
maximumScreenSpaceError
option fromtileset-traverser
and instead I use the value from the tileset. I didn't find any use for that option, but might be I missed something from I3S or other.Thanks and let me know your comments!