Announcement

Collapse
No announcement yet.

Point Cloud Plugin

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Awesome - thanks - will download it from the repo and give that version a go.
    Have been doing some comparisons with a Revit model where I have translated and aligned the point cloud to match a model and noticed that the translations don't match up. Saying that the file in Revit is a recap one whilst the Point Cloud Plugin is using an xyz file (so the delta could have been introduced there).

    Is there any translation done to the point cloud data in UE4 or should the coordinates tie through between scan and point in UE4?

    EDIT - I just realised that it was my issue translating it rather than the plugin. The 2D ortho view support in the latest code build helped me realise!
    Last edited by david.gillespie; 07-26-2019, 10:33 AM.
    David Gillespie
    Associate
    Foster + Partners

    Comment


      Originally posted by david.gillespie View Post
      Awesome - thanks - will download it from the repo and give that version a go.
      Have been doing some comparisons with a Revit model where I have translated and aligned the point cloud to match a model and noticed that the translations don't match up. Saying that the file in Revit is a recap one whilst the Point Cloud Plugin is using an xyz file (so the delta could have been introduced there).

      Is there any translation done to the point cloud data in UE4 or should the coordinates tie through between scan and point in UE4?
      The cloud is centered to avoid precision loss as much as possible, then scaled x100 to match UE4's units. How large is the discrepancy - could you screenshot it?
      Point Cloud Plugin: Project Website | Forum Thread | Roadmap

      If you need help: join me on Discord
      Please support me on Patreon if you enjoy my content

      Comment


        Originally posted by phoboz View Post

        The cloud is centered to avoid precision loss as much as possible, then scaled x100 to match UE4's units. How large is the discrepancy - could you screenshot it?
        I had thought "preserve original coordinates" fixed this however digging deeper, that's not the case.

        Due to project I can't send a screenshot, however I can give you difference in translation:

        Transform required to align with model in Revit
        X: 2447.94
        Y: 233
        Z: 19123.4

        ZRot: -21.986°

        Transform applied to PC to align with same Revit model in UE4
        X: -2279.4526367
        Y: 113.6130219
        Z: 1912.3399658

        ZRot: -21.9860001°

        Looks like the X and Y are off by a bit.
        David Gillespie
        Associate
        Foster + Partners

        Comment


          Btw - looking at performance in VR, I noticed that there is quite a drop in framerate - more than what appears to be in the editor - at runtime. Any ideas for optimisation? For comparison, Faro's Scene software also works with point cloud data and appears to have some pretty good optimisation.

          Perhaps is there a way to optimise to show more points at the centre of the view in VR (or even a foveated approach) to increase apparent visual fidelity whilst increasing performance?
          David Gillespie
          Associate
          Foster + Partners

          Comment


            Enabling Preserve Original Coordinates will skip centering of the cloud. Be careful though, if the cloud uses very large values for XYZ data, it is likely to introduce precision loss, as internally, the data is stored as 32-bit (there are a number of reasons for it). However, this usually manifests itself as point "banding" rather than just an offset.

            With regards to the performance
            VR is inherently more performance-hungry, so I'm not surprised it drags the framerate down. Unfortunately, I haven't used Faro, so cannot speculate on their optimizations.

            If possible, I would advise to:
            - Disable shadow casting on Point Clouds
            - Opt to use Eye-Dome Lighting instead of Ambient Occlusion: https://pointcloudplugin.com/edl
            - Tweak the Point Budget and Min Screen Size properties, while also compensating with Sprite Size Multiplier to try to achieve better overall performance without noticeable loss in appearance

            The option to concentrate selected point budget towards the screen center is already on the todo list and should provide better results. In addition, I'm exploring some other techniques to use the available rendering resources more efficiently
            Point Cloud Plugin: Project Website | Forum Thread | Roadmap

            If you need help: join me on Discord
            Please support me on Patreon if you enjoy my content

            Comment


              Hi, first off, thank you so much for making this tool, and for being so active on this forum. The plugin has a lot of potential for an interactive experience I'm starting work on. :-)

              I'd like to apply opacity to my point cloud. I brought them in as PLY objects and set the display as lit sprites. However, when I add a material to the "custom material" slot and "rebuild cloud" the cloud disappears from the viewport. My hope was to plug vertex color into the opacity slot so that the darker points disappear, but right now I am stuck on that front. Any guidance?

              Comment


                Originally posted by Stenrik View Post
                Hi, first off, thank you so much for making this tool, and for being so active on this forum. The plugin has a lot of potential for an interactive experience I'm starting work on. :-)

                I'd like to apply opacity to my point cloud. I brought them in as PLY objects and set the display as lit sprites. However, when I add a material to the "custom material" slot and "rebuild cloud" the cloud disappears from the viewport. My hope was to plug vertex color into the opacity slot so that the darker points disappear, but right now I am stuck on that front. Any guidance?
                Hi there and thanks for the feedback!

                Can you send me a screenshot of how the material is setup?
                Also, did you change the material type to Translucent? It is using Masked by default, which simply acts as an on-off threshold.
                Point Cloud Plugin: Project Website | Forum Thread | Roadmap

                If you need help: join me on Discord
                Please support me on Patreon if you enjoy my content

                Comment


                  Originally posted by phoboz View Post
                  Enabling Preserve Original Coordinates will skip centering of the cloud. Be careful though, if the cloud uses very large values for XYZ data, it is likely to introduce precision loss, as internally, the data is stored as 32-bit (there are a number of reasons for it). However, this usually manifests itself as point "banding" rather than just an offset.

                  With regards to the performance
                  VR is inherently more performance-hungry, so I'm not surprised it drags the framerate down. Unfortunately, I haven't used Faro, so cannot speculate on their optimizations.

                  If possible, I would advise to:
                  - Disable shadow casting on Point Clouds
                  - Opt to use Eye-Dome Lighting instead of Ambient Occlusion: https://pointcloudplugin.com/edl
                  - Tweak the Point Budget and Min Screen Size properties, while also compensating with Sprite Size Multiplier to try to achieve better overall performance without noticeable loss in appearance

                  The option to concentrate selected point budget towards the screen center is already on the todo list and should provide better results. In addition, I'm exploring some other techniques to use the available rendering resources more efficiently
                  Awesome - thanks for the advice - testing out the optimisations you suggested now. Didn't stop to think that maybe those point clouds were casting shadows themselves in the scene. Some optimisation presets would be awesome to allow for starting point for people to build upon if it wasn't tremendously hard to implement, eg with a drop down at the top of the point cloud object that would change the parameter values on the actor accordingly.
                  David Gillespie
                  Associate
                  Foster + Partners

                  Comment


                    Originally posted by phoboz View Post

                    Hi there and thanks for the feedback!

                    Can you send me a screenshot of how the material is setup?
                    Also, did you change the material type to Translucent? It is using Masked by default, which simply acts as an on-off threshold.
                    I already had "blend mode" to translucent, assuming that's what you meant by "type." I did try others, but nothing showed up.

                    I have included a screenshot of the material, as well as the setting for the cloud itself for good measure. (I'm pretty new to mats in UE4 but this is how I set up a point cloud material to render in V-ray.)

                    Thanks for getting back and taking a look.

                    Attached Files

                    Comment


                      Originally posted by Stenrik View Post

                      I already had "blend mode" to translucent, assuming that's what you meant by "type." I did try others, but nothing showed up.

                      I have included a screenshot of the material, as well as the setting for the cloud itself for good measure. (I'm pretty new to mats in UE4 but this is how I set up a point cloud material to render in V-ray.)

                      Thanks for getting back and taking a look.
                      Yes, by type, I meant the blend mode

                      The plugin scales Sprites inside the material - this is to allow people to override the default behavior if needed. The reason why everything disappears when using your custom material is you didn't link the node responsible for the scaling process, hence you end up rendering infinitely small sprites - essentially invisible.

                      Click image for larger version

Name:	Untitled.png
Views:	1
Size:	60.0 KB
ID:	1647932

                      Hope this helps
                      Point Cloud Plugin: Project Website | Forum Thread | Roadmap

                      If you need help: join me on Discord
                      Please support me on Patreon if you enjoy my content

                      Comment


                        Originally posted by phoboz View Post

                        Yes, by type, I meant the blend mode

                        The plugin scales Sprites inside the material - this is to allow people to override the default behavior if needed. The reason why everything disappears when using your custom material is you didn't link the node responsible for the scaling process, hence you end up rendering infinitely small sprites - essentially invisible.

                        Click image for larger version

Name:	Untitled.png
Views:	1
Size:	60.0 KB
ID:	1647932

                        Hope this helps
                        It does help me realize how I don't really understand how the plugin works, yet, heh. I do understand what you mean for that, though. :-)

                        Is MF_PointCloud_WPO something I need to create from scratch? I was unable to find the node you list in the material editor.

                        Click image for larger version

Name:	UE4PCNode.png
Views:	1
Size:	50.8 KB
ID:	1648056

                        I was also unable to find it under "World Position Offset."

                        Click image for larger version

Name:	20190730_175223.png
Views:	1
Size:	40.7 KB
ID:	1648058

                        Once I get a handle on this system, the hope is to make sprite scale dynamic on my clouds. For examples, increase the radius/opacity of individual sprites when in proximity to specific actors. Is that something within the realm of possibility?

                        Thanks.

                        Attached Files

                        Comment


                          Originally posted by Stenrik View Post
                          It does help me realize how I don't really understand how the plugin works, yet, heh. I do understand what you mean for that, though. :-)
                          Heh, let me know if you have more questions, I'll do my best to explain

                          Originally posted by Stenrik View Post
                          Is MF_PointCloud_WPO something I need to create from scratch? I was unable to find the node you list in the material editor.
                          Which versions of the plugin and engine are you using?
                          If you are still on pre v0.5.5, this is how to replicate the WPO node:

                          Click image for larger version

Name:	Untitled.png
Views:	1
Size:	77.6 KB
ID:	1648062

                          Originally posted by Stenrik View Post
                          Once I get a handle on this system, the hope is to make sprite scale dynamic on my clouds. For examples, increase the radius/opacity of individual sprites when in proximity to specific actors. Is that something within the realm of possibility?
                          Should be. You'll probably want to look into this: https://docs.unrealengine.com/en-US/...pth/index.html
                          Point Cloud Plugin: Project Website | Forum Thread | Roadmap

                          If you need help: join me on Discord
                          Please support me on Patreon if you enjoy my content

                          Comment


                            Are you planning on exposing more variables at runtime so optimization features could be changed at runtime for example?
                            David Gillespie
                            Associate
                            Foster + Partners

                            Comment


                              Originally posted by david.gillespie View Post
                              Are you planning on exposing more variables at runtime so optimization features could be changed at runtime for example?
                              Hi,
                              All options should already be changeable at runtime, and almost all via Blueprints.
                              Are you having issues accessing / modifying any parameter in particular?
                              Point Cloud Plugin: Project Website | Forum Thread | Roadmap

                              If you need help: join me on Discord
                              Please support me on Patreon if you enjoy my content

                              Comment


                                Click image for larger version

Name:	0.6.png
Views:	1
Size:	327.2 KB
ID:	1650655
                                Point Cloud Plugin v0.6
                                Release Notes

                                New Features / Improvements
                                • Efficient GPU streaming, allowing support for huge data sets (1 billion and more)
                                • Dramatically decreased VRAM requirements (under 100MB per cloud in most cases)
                                • Significantly decreased RAM requirements (upwards of 50%)
                                • Rendering uses point-budgeting to maintain stable FPS at all times, regardless of cloud size
                                • Added support for Eye-Dome Lighting technique
                                • Much improved import times
                                • Duplicate points detection
                                • Import works in asynchronous manner
                                • Support for importing multiple clouds concurrently
                                • Dynamic sprite size adjustment
                                • Option to allocate higher quality towards the center of the screen
                                • Improved and simplified UI
                                • Simplified Custom Materials
                                • Better Blueprint exposure
                                • Support for UE4.23
                                • Support for multiple instances of the same cloud
                                • Set of runtime Point Selection functions to help query the data inside the cloud
                                • Efficient runtime Insertion and Removal of points
                                • Rendering settings work on per-component basis now, rather than per-asset
                                • Switching between Points and Sprites no longer requires rebuilding
                                • Per-project plugin settings
                                • STAT PointCloud for easier profiling
                                • Point Cloud Exporting
                                • Code is more coherent, understandable and with better documentation
                                Fixes
                                • Fixed several stability issues and crashes
                                • Fixed import precision issues
                                • Fixed occasional incorrect switching of Render Method upon reimport
                                • Fixed issues with releasing rendering resources
                                • Fixed many LOD related issues
                                Other Changes
                                • Plugin now requires Shader Model 5 compatible graphics card
                                • Removed support for Low Precision rendering, as the VRAM requirements are no longer an issue. This will improve shader recompilation times
                                • Removed SinglePolySprit
                                Point Cloud Plugin: Project Website | Forum Thread | Roadmap

                                If you need help: join me on Discord
                                Please support me on Patreon if you enjoy my content

                                Comment

                                Working...
                                X