-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Fix replacement refinement when external tileset is loaded #3517
Conversation
It fixes the blank, but when zooming in further it looks like more than one layer is being selected. Is the tile above the tileset content tile possibly being selected over and over again and not being replaced? |
I'm not seeing that problem with my testing. The |
The code change is OK with me. @e-andersson let us know when this satisfies your needs. |
I think it might be that I'm missing the Anyway, I'll tinker with the metadata and get back when I have the results. |
The issue remains after setting A - b3dm content tile
With this structure, it seems that the tiles above tileset.json tiles will be selected even when they should be replaced by tiles further down. It looks as though these tiles were set to additive refinement although they aren't. @lilleyse It seems the test datasets uses an empty tile as the root tile in the sub tree and then branches out. Does this somehow affect selection? |
It should work the same with "replace" or "add" since it skips that step. I created a tileset based on your example and I'm seeing the same problems. I'm looking into it now. |
2e8116a
to
3f9a9bd
Compare
3f9a9bd
to
c1e0918
Compare
Hopefully this change fixes it for you. The problem was the the upper tile would only refine if its descendants were selected, but didn't account for if they too were replaced. |
@lilleyse Sorry, but there are still cases where it doesn't work. If I zoom in quickly, so that each LOD does not have time to finish loading, I'll sometimes end up with double layers of tiles, one completely refined layer and one rougher layer like before, that shouldn't be selected. If I then move the camera around for a while, the wrong tiles seem to finally get deselected. |
I think in this data set there are around 13 or so layers of tiles, with one layer of tileset.json tiles somewhere in the middle. Does the request ordering cause trouble with larger number of requests? |
I'll be looking into this more today. Does the tileset contain empty tiles, or is it all full with the exception of the external tileset.json's? |
It is all full with the exception of external tilesets, if I remember
|
Just to confirm, the tileset does not contain empty tiles. |
The problem is in that commit as well. I went back to 9cf62aa and checked too, just to get a point some way before that commit, but it was the same. I think I won't be able to check further back than that with the current tileset. |
@lilleyse any progress on this? Do you need any additional information? |
Sorry about the inactivity lately, I've been busy with other work. I'm trying to figure out if this problem is inherent to One thing we need to do on our end is create better test data sets for replacement refinement. Once I have this I will be able to debug this a lot easier. |
No hurry, we're not suffering from it at the moment. I tried commenting out the |
@lilleyse any progress on this? |
I haven't been working in 3d-tiles lately but I'll try to look into this more today or tomorrow. |
Great, thanks! On Thu, Mar 31, 2016 at 3:42 PM, Sean Lilley notifications@github.com
Erik Andersson Mobile +46 704244916 Email erik.andersson@vricon.com Vricon Systems AB SE-581 88 Linköping, SWEDEN |
I can reproduce this, see #3424 (comment). |
Sorry about the huge delay with this, but I think I fixed this problem. When a tile checked if it could refine, it didn't consider if any of its descendants-with-content were out of view - in which case it should still be able to refine. I'm still noticing a few other artifacts, but they don't seem to be related to this as they also appear with a non split up tileset.json. @e-andersson let me know if this works for you, and thanks for the patience. |
Code and tests LGTM. @e-andersson we deeply appreciate your testing here if you have the time. |
Very nice, thanks @lilleyse @e-andersson! |
For #3241
Addressing the issue in #3456 (comment) where replacement refinement draws empty space when loading an external tileset.
@e-andersson Thanks for bringing this up, it's an edge case that I forgot to handle. I added a test for good measure. Let me know if this fixes the problem for you.