<div>                Wow Martin, this new feature would be amazing!<br><br>Are you thinking about implementing a new QgsVectorDataProvider where the new QgsFeatureIterator yields the point cloud as QgsFeature instances?<br><br>If you allow me an idea, the QgsVectorDataProvider, or even the QgsFeatureIterator, could create on-the-fly a PDAL PipelineManager instance with the necessary PDAL readers, and initially some PDAL filters to consider the input parameter of current QgsFeatureRequest. Then the iterator could fetch the points implementing a new PDAL writer[1] as final stage of the pipeline.<br><br>All field info structure of the point could be read from the writer or from the last filter[2] (method: virtual void addDimensions(PointLayoutPtr layout);) of the Pipeline.<br><br>This way initially does not require any new QgsMapLayer class or new specific QgsSymbol classes to get results. Also this provider could allow to the user configure an extra set of PDAL filters (there are many ones with many purposes) to apply to the input point cloud (Decimate, SMRF-classification, and so on).<br><br>[1] https://pdal.io/development/writing-writer.html<br>[2] https://pdal.io/development/writing-filter.html<br><br>It is only an idea, I hope this does not bother you adding more noise, I have used PDAL in a similar way for other project and it was not difficult of implementing and you have in your hands all amazing filters that PDAL provides.<br><br>Best regards<br>Alvaro            </div>            <div class="yahoo_quoted" style="margin:10px 0px 0px 0.8ex;border-left:1px solid #ccc;padding-left:1ex;">                        <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">                                <div>                    En lunes, 6 de julio de 2020 16:01:55 CEST, Martin Dobias <wonder.sk@gmail.com> escribió:                </div>                <div><br></div>                <div><br></div>                <div><div dir="ltr">Hi all<br></div><div dir="ltr"><br></div><div dir="ltr">I have been looking into ways to get native point cloud support into<br></div><div dir="ltr">QGIS. By native I mean to have a new point cloud map layer type which<br></div><div dir="ltr">would support LAS and possibly other formats, and it would display the<br></div><div dir="ltr">data in 2D/3D map views together with other map layers. At this point<br></div><div dir="ltr">I am interested only in the visualization, no further<br></div><div dir="ltr">analysis/processing. While the existing tools such as CloudCompare or<br></div><div dir="ltr">Potree are great to visualize point clouds, we are IMHO still missing<br></div><div dir="ltr">integration with a proper GIS, which would open many new possibilities<br></div><div dir="ltr">and make point cloud data more accessible to ordinary GIS users.<br></div><div dir="ltr"><br></div><div dir="ltr">I am aware of the fact that this is not going to be an easy task for a<br></div><div dir="ltr">couple of evenings :-) We would like to run a crowd-funding campaign<br></div><div dir="ltr">to make the development possible.<br></div><div dir="ltr"><br></div><div dir="ltr">I wanted to reach out to the PDAL community and see what advice the<br></div><div dir="ltr">point cloud gurus would have. I have a fair amount of experience with<br></div><div dir="ltr">QGIS development and some with 3D graphics, but I am relatively new to<br></div><div dir="ltr">the whole ecosystem of point cloud data. I have started to look into<br></div><div dir="ltr">PDAL, CloudCompare and Potree to get a better understanding of the<br></div><div dir="ltr">challenges.<br></div><div dir="ltr"><br></div><div dir="ltr">So far it looks like it would be a good idea to use the PDAL library<br></div><div dir="ltr">for I/O - it supports a variety of formats through a common<br></div><div dir="ltr">abstraction which would make our life much easier. The next thing is<br></div><div dir="ltr">how to deal with rendering. From what I understand, CloudCompare reads<br></div><div dir="ltr">the whole point cloud file into memory and builds an in-memory octree<br></div><div dir="ltr">which is then used for data access. Potree needs the data to be<br></div><div dir="ltr">pre-processed beforehand with PotreeConverter tool into an octree, its<br></div><div dir="ltr">nodes are then stored in files and requested as needed. Entwine does<br></div><div dir="ltr">similar indexing, with a different file format. So it seems that it<br></div><div dir="ltr">would be nice to cover both cases:<br></div><div dir="ltr">1. point clouds without index (it would be created on the fly in memory),<br></div><div dir="ltr">2. point clouds with index (stored on a local drive or maybe on a<br></div><div dir="ltr">remote server) - with much faster loading times and supporting<br></div><div dir="ltr">potentially really huge datasets.<br></div><div dir="ltr"><br></div><div dir="ltr">I guess once we have an octree built, we can start thinking about<br></div><div dir="ltr">visualization of the data... There are various things to consider in<br></div><div dir="ltr">addition to out of core rendering (to pick the right chunks of data<br></div><div dir="ltr">based on level of detail - already handled in QGIS 3D to some degree).<br></div><div dir="ltr">It will probably be a long run to make the point cloud visualization<br></div><div dir="ltr">look good - splatting, dynamic point sizing, eye-dome lighting and<br></div><div dir="ltr">possibly more features already supported by Potree / CloudCompare.<br></div><div dir="ltr"><br></div><div dir="ltr">I don't want to make this mail too long - at some point I will try to<br></div><div dir="ltr">prepare a QGIS Enhancement Proposal (QEP) with more details. I would<br></div><div dir="ltr">be very grateful for any comments and suggestions, where do you see<br></div><div dir="ltr">possible issues, where else to look for some inspiration etc.<br></div><div dir="ltr"><br></div><div dir="ltr">Thanks<br></div><div dir="ltr">Martin<br></div><div dir="ltr">_______________________________________________<br></div><div dir="ltr">pdal mailing list<br></div><div dir="ltr"><a ymailto="mailto:pdal@lists.osgeo.org" href="mailto:pdal@lists.osgeo.org">pdal@lists.osgeo.org</a><br></div><div dir="ltr"><a href="https://lists.osgeo.org/mailman/listinfo/pdal" target="_blank">https://lists.osgeo.org/mailman/listinfo/pdal</a></div></div>            </div>                </div>