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

lidRviewer 1.0.0 announcement #23

Open
Jean-Romain opened this issue Aug 25, 2024 · 12 comments
Open

lidRviewer 1.0.0 announcement #23

Jean-Romain opened this issue Aug 25, 2024 · 12 comments

Comments

@Jean-Romain
Copy link
Collaborator

Jean-Romain commented Aug 25, 2024

The devel branch contains the version 1.0.0 which is complete redesign of the package. @H4estu @caiohamamura @ptompalski @liamirwin may I ask you to test it and provide feedback. It is designed to efficiently display arbitrarily large in-memory point clouds, with tested cases including over 130 million points.

remotes::install_github("r-lidar-lab/lidRviewer", ref = "devel" )

Usage

Use library(lidRviewer) after library(lidR) to overide the default rgl plot function from lidR.

library(lidR)
library(lidRviewer)
LASfile <- system.file("extdata", "Megaplot.laz", package="lidR")
las <- readLAS(LASfile)
plot(las)
  • Rotate with left mouse button
  • Zoom with mouse wheel
  • Pan with right mouse button
  • Keyboard r or g or b to color with RGB
  • Keyboard z to color with Z
  • Keyboard i to color with Intensity
  • Keyboard c to color with Classification
  • Keyboard + or - to change the point size
  • Keyboard l to enable/disable eyes-dome lightning
@bi0m3trics
Copy link

Oooo... exciting!

@bi0m3trics
Copy link

bi0m3trics commented Aug 25, 2024

image
Here's a quick test with 880 million points... Install (on windows) - check, load data - check, eye dome lighting - not on this potato! Nice work @Jean-Romain
watch a few seconds here -> https://youtu.be/uu3RtY1kU8M

@Jean-Romain
Copy link
Collaborator Author

Jean-Romain commented Aug 25, 2024

@bi0m3trics Thank you for your test. When I wrote arbitrary large I was not thinking about 879 millions points. I guess some optimization will be required to make the initial indexing faster and smoother. But ultimately it works.

✅ Straightforward installation
✅ Rendering is ok
✅ eye dome lightning
❌ There are not enough point visible in my opinion for TLS. I must add an option to increase the point budget on computers that can handle it.

@bi0m3trics
Copy link

bi0m3trics commented Aug 25, 2024

@Jean-Romain
I did turn off eye dome lighting, but it worked beautifully on other files I opened; I did reduce the point size prior to starting the video (and changed color to Z); and the points rendered seemed on par with what I seen in commercial products.
I did it on my home pc: i7-10700K, 64GB RAM, RTX 3800 Ti FE, on a 49" at 5120x1440. It took about 6:23 minutes for the las to initially render,
Here's another video showing you how it responded -> https://youtu.be/u84xYjLIUXI

@Jean-Romain
Copy link
Collaborator Author

Jean-Romain commented Aug 25, 2024

Just tested it on Windows, and everything looks good on my end. However, you don't have eye dome lighting (EDL) because the points are too small, which also causes the rendering to degrade. The EDL doesn’t work well when applied to such small points. Try disabling EDL when the points are too small—the rendering should improve (and be faster).

I also watched your second video. Thank you very much for taking the time to create it. I see a few possible improvements:

  • The Z coloring is slow because it recalculates the 99th percentile each time for the 880M points to plot nice Z colors even with outliers. This should be precomputed only once, which is an easy fix.
  • There are a lot of points, leading to high density close to the camera but too low in the neighboring quads.
  • EDL does reduce FPS, which I’m aware of and can be improved. Additionally, your screen is extraordinarily large, and EDL is computed on 7.4 million pixels instead of 2.0 million pixels on a full HD screen like mine. I will work on it.
  • The initial rendering time of 6 minutes is long. Unfortunately, I won't be able to do much to reduce that, but I can try to enable partial rendering of the point cloud before indexing is complete. To be honest, I didn’t envision this tool being used with 880M ultra dense point cloud; it was initially designed for ALS.

Thank you very much again.

@bi0m3trics
Copy link

Of course... and I think it's absolutely great!
I know my screen is huge and this data set is huge, but it preforms admirably and if I was working on a "normal" dataset I have not doubt it would be spectacular! Again, I pushed it straight to the upper end with 880M pts, and it did great.
Also, I think the way I "look around" in TLS is quite different form ALS, so I were staying above canopy I doubt it would have been an issue.
Again, nice work and thanks!

@Jean-Romain
Copy link
Collaborator Author

Jean-Romain commented Aug 25, 2024

FYI: opening a lidRviewer windows is no longer blocking the R session.

@bi0m3trics I fixed an issue with an incorrect hard coded field of view value. I think know the rendering of the density should be better. What triggers me is that the edges of your rendering were rendered with very low density. Can you retry please.

Jean-Romain added a commit that referenced this issue Aug 26, 2024
@liamirwin
Copy link

Hey JR,

This is a great and welcomed addition to the r-lidar ecosystem!
I have had fairly good luck rendering large point clouds.

On my end mostly its working well, however I experience some clipping issues with the eye-dome lighting - see video,

Otherwise decreasing point cloud size is working well but increasing is not.
I've recorded a few examples with point clouds of increasing size - 82k, 50m, 258m points.

https://www.youtube.com/watch?v=Ce14ZEMZ4yY

Here are the specs of the laptop I used: Intel Core Ultra 9 185H, 32GB RAM, NVIDIA GeForce RTX 4060 Laptop GPU, x64-based PC, at 2560x1600, running Windows 11 Home (Version 10.0.22631)

Cheers

Liam

@Jean-Romain
Copy link
Collaborator Author

Jean-Romain commented Aug 26, 2024

Thank you for you feed back and incredible edited video where I can see the keys you are pressing. Which software did you use?

  • The EDL bug is really weird. I have no clue. It is actually straightforward to compute as it implies only to post-process the raw image rendered on screen. So why is it distorted?!?
  • The + not responding I guess can be fixed easily by assigning another shortcut. On my side not all the +/- keys are responding. Are you using a keypad?

You input is very valuable thank you.

@liamirwin
Copy link

Thanks JR, glad its helpful...

The EDL issue seems to be apparent for me when full-screening the rendering, it seems to work fine when the viewer first opens

https://youtu.be/OR8fGzwcBsU

I did retry increasing the point size and it does work using the numpad's +/-, just not using the normal (shift +=) I use.

The tool I used to visualize keystrokes is called keyviz check it out here: https://github.com/mulaRahul/keyviz

Happy to continue testing the viewer as you make changes!

Liam

@Jean-Romain
Copy link
Collaborator Author

Jean-Romain commented Aug 26, 2024

I did retry increasing the point size and it does work using the numpad's +/-, just not using the normal (shift +=) I use.

Ok, same for me. So I can fix on my end.

The EDL issue seems to be apparent for me when full-screening the rendering, it seems to work fine when the viewer first opens

Ok. It is an helpful information.

Jean-Romain added a commit that referenced this issue Aug 28, 2024
@Jean-Romain
Copy link
Collaborator Author

@liamirwin The EDL issue should be fixed now

@Jean-Romain Jean-Romain changed the title lidRviewer 1.0.0 annoucement lidRviewer 1.0.0 announcement Aug 28, 2024
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

No branches or pull requests

3 participants