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

"Kick" only when the current tile is renderable #1042

Merged
merged 6 commits into from
Dec 18, 2024
Merged

Conversation

kring
Copy link
Member

@kring kring commented Dec 13, 2024

This is a PR into #1032 so merge that first.

Fixes #1033

This is a draft because they are some test failures. I think it's just tests asserting conditions that are purposely changed here, but I need to think through it more thoroughly.

Unless the loadingDescendantLimit is exceeded.
Base automatically changed from any-were-rendered to main December 13, 2024 16:36
@kring kring marked this pull request as ready for review December 16, 2024 12:08
@kring
Copy link
Member Author

kring commented Dec 16, 2024

I've fixed the test failures and this is ready for review now.

@j9liu j9liu self-requested a review December 16, 2024 21:23
Copy link
Contributor

@j9liu j9liu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @kring ! I just have a few comments that just about clarity. Let me know if I should test this behavior in any way as well.

Cesium3DTilesSelection/src/Tileset.cpp Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved

// root's children don't have content loading right now, so only root get
// rendered
// root's child is done loading and rendered, too.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// root's child is done loading and rendered, too.
// root's children are done loading and rendered, too.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's only one in this case though, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh sorry, I got confused by the lines below this (REQUIRE(parentB3DM.getChildren().size() == 4);) and thought the comment was referring to this check. Nevermind 🙂

Comment on lines +566 to +567
// 1st frame. Root, its child, and its four grandchildren will all be
// rendered because they meet SSE, even though they're not loaded yet.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see "render" getting used even when tiles aren't loaded in yet -- would it be more accurate to say tiles get "selected" vs. "rendered"?

Though, it seems like this verbiage is built into the API already (tilesToRenderThisFrame), so maybe it's better to stick with "render". But I hope our documentation clarifies that render ~= selection, and render != content show up on screen 🙂

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this is a good point. It's a bit of a quirk of this whole system. Arguably, tiles that are not renderable should never be selected/rendered, in general. That would make sense, and be least likely to surprise people. My thought process when I went the other way was that - just maybe! - it could be useful to know which tiles would be rendered if they were loaded. For example, maybe you could render a grey cloudy thing in the space of their bounding box, and that would be better than a hole.

So whether this is a good idea or not, Cesium Native currently refers to selection as "rendering", and the rendered tiles aren't necessarily actually renderable. Changing this might be an excellent idea, but I think it's outside the scope of this PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I hope our documentation clarifies that render ~= selection, and render != content show up on screen

I think it probably makes that apparent, but doesn't say so explicitly.

@kring
Copy link
Member Author

kring commented Dec 18, 2024

Thanks @j9liu! I think I've addressed your comments, or at least responded to them.

@j9liu
Copy link
Contributor

j9liu commented Dec 18, 2024

Thanks @kring !

@j9liu j9liu merged commit 8cdf943 into main Dec 18, 2024
22 checks passed
@j9liu j9liu deleted the kick-to-renderable branch December 18, 2024 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider "kicking" only when the current tile is renderable
2 participants