Announcement

Collapse
No announcement yet.

Point Cloud Plugin

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

    Love the plugin. Is the collision taking into account every point or some lower sampling distribution?

    I have a need to compare each point to a collision object in the world, separate out those that penetrate it (it's an inclined plane) and colorize them, and set them into their own cloud.

    Can this be done through this plugin? I dont mind diving into the code but I thought I'd ask to see how much work it may be.

    I also then have to export those points to file, but not with ue4 coordinates but rather those that correspond to the cloud geolocation originally assigned. Also would love to add another column to the export that represents metadata of some kind (property owner name, tax info...etc.).

    Any insight would be appreciated!

    Great job so far guys.

    Comment


      Originally posted by PA VR View Post
      Love the plugin.
      Thanks!

      Originally posted by PA VR View Post
      Is the collision taking into account every point or some lower sampling distribution?
      All of them

      Originally posted by PA VR View Post
      I have a need to compare each point to a collision object in the world, separate out those that penetrate it (it's an inclined plane) and colorize them, and set them into their own cloud.

      Can this be done through this plugin? I dont mind diving into the code but I thought I'd ask to see how much work it may be.
      The closest thing I can think of, that's already in, would be to use GetPointsInFrustum - using your plane as the near plane. However, if collision performance is crucial, implementing a simple plane intersection test may be a little faster.

      Add a variant of GetPointsInFrustum, which returns the points as copies instead of pointers (look at FPointCloudOctree::GetPointsInBox and FPointCloudOctree::GetPointsAsCopyInBox for reference).

      Once you have the array of points, just iterate over them and assign the desired color.

      Finally, use UPointCloud::CreateFromData to generate the new cloud.

      Originally posted by PA VR View Post
      I also then have to export those points to file, but not with ue4 coordinates but rather those that correspond to the cloud geolocation originally assigned.
      Set the OriginalCoordinates of the new cloud to the value of the original cloud. This will be automatically added to the data during export

      Originally posted by PA VR View Post
      Also would love to add another column to the export that represents metadata of some kind (property owner name, tax info...etc.).
      There is no built-in way to add custom columns at this point. You will need to have a look at UPointCloudFileIO_ASCII::HandleExport to add the extra columns.

      Originally posted by PA VR View Post
      Great job so far guys.
      Thanks again!

      If you need further help, find me on the Discord chat - will be faster that way
      Point Cloud Plugin: Project Website | Forum Thread

      If you need help: join me on Discord

      Comment


        Thanks for all your work with the plugin. I was wondering if you would know how to dynamically import point clouds based on its number of columns, as some contain only XYZ values, some contain RGB, normals, intensity, etc. Thanks.

        Comment


          Originally posted by DeusUpperX View Post
          Thanks for all your work with the plugin. I was wondering if you would know how to dynamically import point clouds based on its number of columns, as some contain only XYZ values, some contain RGB, normals, intensity, etc. Thanks.
          By default, the importer assumes columns to be in XYZ RGB Intensity order, and if you use Create Point Cloud From File node or UPointCloud::CreateFromFile, this is how it will attempt to import the data.

          However, you can override the default behavior by using Create Point Cloud From File (ASCII) node or, if using C++, setting up ImportSettings parameter for UPointCloud::CreateFromFile (look at how UPointCloudFileIO_ASCII::CreatePointCloudFromFile does it for reference).

          In there, you can modify the default mapping by providing the desired order of data to use.
          So if your data contains XYZ Normals RGB, you would have to specify the following:
          LocationX = 0
          LocationY = 1
          LocationZ = 2
          Red = 6
          Green = 7
          Blue = 8
          Intensity = -1

          Note the -1 for Intensity - this would instruct the Intensity to be skipped.

          Also, if the index is larger than the number of available columns, it will be skipped. For example, if the cloud is only XYZ, but you use the default mapping (XYZ RGB I), it would still apply the XYZ data correctly, then skip RGB and Intensity sources (as their specified Indices will be unavailable).

          I hope I understood the question correctly and this answers it
          Point Cloud Plugin: Project Website | Forum Thread

          If you need help: join me on Discord

          Comment


            Originally posted by phoboz View Post

            By default, the importer assumes columns to be in XYZ RGB Intensity order, and if you use Create Point Cloud From File node or UPointCloud::CreateFromFile, this is how it will attempt to import the data.

            However, you can override the default behavior by using Create Point Cloud From File (ASCII) node or, if using C++, setting up ImportSettings parameter for UPointCloud::CreateFromFile (look at how UPointCloudFileIO_ASCII::CreatePointCloudFromFile does it for reference).

            In there, you can modify the default mapping by providing the desired order of data to use.
            So if your data contains XYZ Normals RGB, you would have to specify the following:
            LocationX = 0
            LocationY = 1
            LocationZ = 2
            Red = 6
            Green = 7
            Blue = 8
            Intensity = -1

            Note the -1 for Intensity - this would instruct the Intensity to be skipped.

            Also, if the index is larger than the number of available columns, it will be skipped. For example, if the cloud is only XYZ, but you use the default mapping (XYZ RGB I), it would still apply the XYZ data correctly, then skip RGB and Intensity sources (as their specified Indices will be unavailable).

            I hope I understood the question correctly and this answers it
            Yes thank you this was very helpful.

            Comment


              On, https://pointcloudplugin.com/downloads the download for 0.7.1-4.22 links to 0.7.1-4.21 version. Is this intended behaviour?

              Comment


                Originally posted by xmak View Post
                On, https://pointcloudplugin.com/downloads the download for 0.7.1-4.22 links to 0.7.1-4.21 version. Is this intended behaviour?
                Oops, must have missed it, thanks!
                Fixed now.
                Point Cloud Plugin: Project Website | Forum Thread

                If you need help: join me on Discord

                Comment

                Working...
                X