-
Notifications
You must be signed in to change notification settings - Fork 334
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
Integrate depth clouds into Rerun #1421
Conversation
340b3fa
to
f4c6920
Compare
d87d6ef
to
7cf4fd0
Compare
crates/re_viewer/src/ui/view_spatial/scene/scene_part/images.rs
Outdated
Show resolved
Hide resolved
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.
Looks good except the EditableAutoValue
business - EditableAutoValue
is clearly immature as such but something weird is going on there in your ui code or I don't get it ;)
The transform stuff is scary, but I think it all makes sense to me the way you written it down :)
still pondering the name "depth cloud", seems quite unconventional. Kinda makes sense tho and I don't have any other idea. @emilk maybe?
@@ -261,7 +253,8 @@ impl framework::Example for RenderDepthClouds { | |||
Vec3::new(focal_length, 0.0, offset.x), | |||
Vec3::new(0.0, focal_length, offset.y), | |||
Vec3::new(0.0, 0.0, 1.0), | |||
); | |||
) | |||
.transpose(); |
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.
given that the way you wrote the matrix up seems to be the "normal way" and that you moved out the transpose from the shader, maybe the transpose should be on renderer/depth_cloud.rs
?
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.
I'm writing the matrix as if the constructor accepted rows rather than columns (cause I find it easier to read), so i should be the one transposing back no?
// TODO(cmc): re_renderer needs native interop with Arrow, we shouldn't need to | ||
// allocate this massive buffer and do a memcpy when we could just carry arround the | ||
// original `arrow::Buffer`. |
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.
but didn't you do this already on another PR that landed?
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.
not quite landed yet, it requires this PR!
ui.end_row(); | ||
|
||
ui.label("Backproject radius scale"); | ||
let speed = (radius_scale * 0.05).at_least(0.01); |
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.
When I tried it I found it a bit too sensitive still
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.
[out of scope] Also I noticed that units in points might be nice as well after all. That requires much deeper changes tho and I don't know how to make the ui story for that ok - probably we need to make the setting thing we have on for point & line sizes on the space view "a thing" and re-use it here
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 feels pretty good with the new sensitivity I've just set
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.
very nice, that's exactly how I thought EditableAutoValue
should play out :)
This PR integrates depth clouds (#1415) into the main Rerun app.
Any tensor..:
is eligible for backprojection.
The advantages from a user's standpoint are two-fold:
The drawbacks:
From a developer standpoint this is also an interesting exercise in dogfooding.
Support for (gpu) color maps and albedo textures will follow in subsequent PRs.
Manual point clouds vs. depth clouds:
23-03-02_15.00.41.patched.mp4
Fun bonus: infinite history depth clouds (something you cannot do otherwise!):
23-03-02_15.03.23.patched.mp4