No announcement yet.

Point Cloud Plugin

  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by Isjtar View Post

    Can you give some info on making materials?
    I tried a basic one, with blend mode translucent and just a vertex color in base color and emissive. Comes out white and square, while I have circle selected in the properties. I could easily mask it, but I want to understand what's going on, especially with the colors (which are present when not using a custom material).

    Hi Isjtar

    Custom point cloud materials should work as any other does.
    The Vertex Color node contains RGB information corresponding to the Color Source property selected on the actor / component and opacity mask in A (in case you use circles as a shape).

    Could you share screenshots of your material setup and actor settings?

    In the meantime, have a look at the default materials (you'll need to enable Engine and Plugin content in the Content Browser).

    Click image for larger version

Name:	ShowPlugin.jpg
Views:	122
Size:	24.3 KB
ID:	1814137


      Originally posted by Theorem3D View Post
      Trying to get a large LIDAR site to perform nicely in VR but seems very inconsistent and having trouble getting shadows to appear. Looks like there's a few things mentioned in this thread which I could try but figured I'd post a screen recording here. I had very high hopes for LIDAR in Unreal Engine, trying to hold onto that feeling but it's getting hard!

      Hi Theorem3D

      By default, the cloud actors have their Gain property (under Color Adjustment) set to 1, which results in the color being emissive. Drop the value to 0 and see if that helps.

      This could be caused by MinScreenSpace being set too high, I would suggest resetting to its default setting.

      Let me know if this helps.


        Are there any chances there will be raytraced shadow support at some stage? It's quite useful when UE4 is used as an offline renderer.
        George Rolfe.
        Technical Coordinator at Orbit Solutions Pty Ltd.


          Looking at the code, the runtime import perf could potentially be improved by allowing the user to set max concurrency. Right now (LidarPointCloud.cpp:653 in master) it's total threads - 1, so as you say it saturates the system. You could add a setting like 'MaxImportConcurrency', where a positive value is max thread count, and negative is actual system threads - value:

          const int32 MaxImportConcurrency = GetDefault<ULidarPointCloudSettings>()->MaxImportConcurrency;
          const int32 MaxThreads = FPlatformMisc::NumberOfCoresIncludingHyperthreads() - 1;
          const int32 UserThreads = FMath::Sign(MaxImportConcurrency) > 0 ? MaxImportConcurrency : MaxThreads + (MaxImportConcurrency + 1); // last option subtracts, MaxImportConcurrency is already negative
          const int32 NumThreads = FMath::Min(FMath::Min(FMath::Max(1, UserThreads), MaxImportConcurrency), (int32)(Count / MaxBatchSize) + 1);
          Also, without testing it, i'm guessing it probably hitches a bit when the data is sync'd from the loading threads to the game thread. This might be offset by syncing the data back in batches over a number of ticks.
          Last edited by duke22; 10-11-2020, 05:43 AM.
          George Rolfe.
          Technical Coordinator at Orbit Solutions Pty Ltd.


            Hi duke22

            We're hoping to have raytracing ready for the next release but due to relatively low priority, I cannot guarantee it will make the cut.

            Thanks for the improvement suggestion - do you have any bench numbers by any chance?

            This may no longer be relevant for binary formats, as we now process import and tree build-up concurrently. As a result, the CPU utilization is not getting saturated, instead, the limiting factor seems to be storage throughput.

            However, it may still improve performance for ASCII-based imports.


              I haven't implemented it, it's just a guess based on that particular bottleneck.
              George Rolfe.
              Technical Coordinator at Orbit Solutions Pty Ltd.



                Is there a way to detect the moment collision building is finished after spawning a point cloud in runtime? I'm having trouble with spawning point clouds and other actors with physics at the same time, making the other actors fall through the point cloud before the collision is created.


                  Hi Latte1635

                  Yes, there is

                  ULidarPointCloud::OnPointCloudCollisionUpdated will broadcast when the collision is removed or a new one finishes calculating.

                  Here's some information regarding Delegates and Events: