[vtk-developers] vtkLODPointCloudMapper remote module

Ken Martin ken.martin at kitware.com
Fri Apr 15 13:52:48 EDT 2016


Oops, my first send was rejected and I forgot to attach it to the second
try, here it is - Ken

On Fri, Apr 15, 2016 at 1:21 PM, Bill Lorensen <bill.lorensen at gmail.com>
wrote:

> Ken,
>
> I don't see the attachment...
>
> On Fri, Apr 15, 2016 at 8:52 AM, Ken Martin <ken.martin at kitware.com>
> wrote:
>
>>
>> Hiya folks,
>>
>> I have been playing with rendering point clouds using some LOD and
>> multithreading techniques. One result of this is vtkLODPointCloudMapper and
>> two supporting filters that reorganize the data into a better format for
>> rendering. I have placed these items into a VTK remote module (
>> http://www.vtk.org/Wiki/VTK/Remote_Modules) and have attached the cmake
>> file to pull it below.  This module does rely on Will's vtkPointCloud
>> module so make sure you have that and it is up to date first. This module
>> includes a test which generates a synthetic point cloud. This test can be
>> easily modified to adjust the number of points generated. In the image
>> below I used 100 million points and included the vtkPointFillPass to fill
>> small holes in the cloud, followed by a vtkEDLShadingPass to produce
>> lighting effects based on the depth buffer. Sort of an interesting example
>> of mixing point clouds with some render passes.
>>
>> The LOD Shader itself only implements a very small subset of VTKs
>> capabilities as it was designed to test out some different approaches to
>> rendering. I have included the description from the header file below to
>> give you some idea of what the class does.
>>
>>
>> [image: Inline image 1]
>>
>> Thanks!
>> Ken
>>
>>
>> // This mapper only implements a very small subset of VTK's features.
>> // Consider it experimental and as a starting point for other uses. This
>> // mapper is designed to take a multiblock point cloud of the form
>> // typically produced by vtkHierachicalBinningFilter and run through
>> // vtkPointCloudToMultiBlock followed by vtkMultiBlockToCompressed. If
>> // the compressed stage is skipped it will be done by the mapper
>> // internally.
>> //
>> // The result of these filters should be a multiblockdataset where the
>> // first block contains a sampling of the points from the entire point
>> // cloud.  Additional blocks will contain smaller subdivisions. A common
>> // arrangement is 1 grandparent + 8 parents + 64 children in an octree
>> // arrangement for a total of 73 blocks.
>> //
>> // This mapper uses unsigned shorts to store the XYZ values and uses
>> // either 3 unsigned chars for color or one unsigned short for single
>> // valued scalars.  When using single valued scalars the lookup table is
>> // hardcoded. When there is no color or scalars a blue to yellow pseudo
>> // coloring is done based on depth.
>> //
>> // This mapper uses timing and coverage metrics to determine what blocks
>> // to draw  and how much of any given block to draw to maintain the
>> // desired render rate. On a laptop with a nvidia 2Gig 960M (midrange
>> // card) I see around one billion points/sec for a dataset of 140
>> //  million points with RGB color
>> //
>> // While this mapper can be fed through a normal VTK pipeline, it also
>> // supports  being fed data one piece at a time using the SetDataForPiece
>> // method. The intent is that the file IO can be handled in one thread, a
>> // piece at a time, while the rendering  is handled in another thread.
>> // SetDataForPiece is what you would use to  pass data from the file IO
>> // thread to the rendering thread.
>> --
>> Ken Martin PhD
>> Chairman & CFO
>> Kitware Inc.
>> 28 Corporate Drive
>> Clifton Park NY 12065
>> 518 371 3971
>>
>> This communication, including all attachments, contains confidential and
>> legally privileged information, and it is intended only for the use of the
>> addressee.  Access to this email by anyone else is unauthorized. If you are
>> not the intended recipient, any disclosure, copying, distribution or any
>> action taken in reliance on it is prohibited and may be unlawful. If you
>> received this communication in error please notify us immediately and
>> destroy the original message.  Thank you.
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtk-developers
>>
>>
>>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
>



-- 
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971

This communication, including all attachments, contains confidential and
legally privileged information, and it is intended only for the use of the
addressee.  Access to this email by anyone else is unauthorized. If you are
not the intended recipient, any disclosure, copying, distribution or any
action taken in reliance on it is prohibited and may be unlawful. If you
received this communication in error please notify us immediately and
destroy the original message.  Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20160415/f1a4ef22/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.jpg
Type: image/jpeg
Size: 154273 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20160415/f1a4ef22/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vtkLODPointCloudMapper.remote.cmake
Type: application/octet-stream
Size: 249 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20160415/f1a4ef22/attachment-0001.obj>


More information about the vtk-developers mailing list