[Bf-committers] Blender and laser scanner - amendment

Jace Priester jacepriester at threespaceimaging.com
Tue Apr 30 15:53:28 CEST 2013


Custom data layer was recommended by ideasman and it serves the purpose
very well. I added a method for python to interact with the CDL and flash
new data to it all in one shot instead of updating it one index at a time,
which essentially made color import have no noticeable impact on import
time. By using GLSL to draw the points in the editor I also don't notice
any delay in speed rendering the editor.

You guys are underestimating the difficulty of converting point clouds to
textured meshes. This is an area which is still in research and development
in many other programs and research projects. There are entire software
libraries and programs devoted to that task and frankly all of them fail
pretty horribly given anything except laboratory-grade clean point cloud
data. Under normal circumstances with a normal amount of noise and holes in
the data, point clouds do not mesh well. I would be all for adding it to
Blender if there were mature code to plug in, but there is not, and it's a
bad idea to merge in a solution that is going to produce poor results most
of the time.

Additionally, structure from motion is also far beyond the scope of
Blender. SFM point clouds work much better than point cloud to mesh, but
again there are entire software libraries and programs devoted to the task.
Blender has absolutely no mechanisms as-is for handling any part of an SFM
pipeline.

As far as:
6) Support for community add-ons (through python) for preforming
        basic data/point processing/rendering operations.

..well, that's what bpy is there for. Vertex data is easily accessible
as-is.

I hate to be the one that shoots down all the ideas but what you're talking
about is massive changes in the direction of the program. That isn't going
to happen without backing from the core developers, which I assure you
isn't there. Restricting this to import-export-render of point colors is a
very attainable goal.


On Tue, Apr 30, 2013 at 5:39 AM, Bastien Montagne <montagne29 at wanadoo.fr>wrote:

> Hi,
>
> Indeed, adding color CD layer to vertices is not a great deal. For
> render, I think the simplest solution would be to tweak a bit particles
> (we already have billboards, just would have to make them be able to
> take the color from actual vertices and not only from loops), a system
> with as much particles as vertices, emitted from those all at once and
> with lifetime=scene duration is a suitable way to render a points cloud.
> With a decent modern computer, Blender can render several millions of
> such billboards with no problem. :)
>
> And we could also have some tool to convert points clouds to actual
> meshes + textures, which could generate much faster objects for
> rendering...
>
> So, especially if Jace already did part of the work (btw, Jace, any
> patch, branch or so available?), to get a basic usable and rederable
> solution should not be *that* hard!
>
> Best regards,
> Bastien
>
> On 30/04/2013 01:30, Isaac Lenton wrote:
> > Hi
> >
> > I looked into this for a project I was working on for visualising point
> > clouds generated from computational physics simulations.  I recall that
> > I managed to get the points rendering in Blender Render with a few quick
> > hacks and duplicating the colour data onto individual vertices (maybe
> > not the best idea).  I ended up switching to VTK and ParaView for most
> > of my scientific data visualisation, but I would be interested if
> > someone were to implement a basic pipeline as described by Jace Priester
> > but with a step 6:
> >
> >          6) Support for community add-ons (through python) for preforming
> >          basic data/point processing/rendering operations.
> >
> > ParaView provides a large selection of operators, some of which would be
> > trivial to implement in blender if a pipeline was set-up.
> >
> > This idea might also be of interest to Shabbir Marzban, whose recent
> > GSoC email to the mailing list included a proposal to integrate Bundler:
> >
> >          "1) Automated rigid structure reconstruction from set of
> >          un-ordered images: A very common structure from motion (SFM)
> >          tool, Bundler[1] can be used to recover 3D point cloud from such
> >          images."
> >
> > Thanks,
> > Isaac Lenton
> >
> > PS: The mailing list seems to be blocking some of my emails, not sure if
> > this will get through.
> >
> > On Mon, 2013-04-29 at 15:02 -0700, Jace Priester wrote:
> >> I wrote in point cloud support for Blender over a year ago, but I have
> been
> >> told repeatedly by the developers that there is no interest in the
> >> community and therefore they aren't interested in implementing it.
> >> Hopefully another voice will help with that.
> >>
> >> The code isn't extensive as is. It requires a custom data layer to
> support
> >> true per-vertex color (as Blender currently implements vertex color as
> part
> >> of face data - not vertex data). There's a bit of extra code in the mesh
> >> drawing functions to access the colors in the custom data layer, and
> then
> >> it draws points to the screen using the set colors. As a bonus, it also
> >> supports per-vertex sizing which allows for point distance attenuation
> >> (which is necessary for a good appearance). My current code does *not*
> >> integrate with any rendering engine - it only works in the editor
> window -
> >> and I gave up trying to get help taking it any further, as I don't use
> it
> >> that often anyway.
> >>
> >> If a developer knowledgeable enough about BI/cycles wants to hop in and
> >> help with finishing this, I'd be happy to collaborate. I see no need for
> >> blender to be a point cloud editing program. Meshlab and others are
> better
> >> suited to that, as that is specifically what they are built for. But the
> >> ability to import and display point cloud data, in my opinion, is vital
> to
> >> Blender being usable in more fields than it is now. So that said, I
> think
> >> short term and easily attainable goals should be to
> >>
> >> 1) import point cloud data in a couple common formats (I have done this
> >> already)
> >> 2) display points with colors and distance attentuation (also done)
> >> 3) export point cloud data (also done)
> >> 4) some user interface controls for turning colors on/off, adjusting
> >> displayed vertex size and attenuation (have not done any of this)
> >> 5) support for render at least in BI
> >>
> >>
> >>
> >> On Mon, Apr 29, 2013 at 2:19 PM, Antoine Cottin<acottin at ultiscan.com
> >wrote:
> >>
> >>> Hi y'all,
> >>>
> >>> Sorry for the repost this might be obvious or not, but after
> re-reading my
> >>> previous post, I feel that need to mention that our goal is not to
> produce
> >>> a tool dedicate to our sole use. Our goal is to develop a tool for us
> and
> >>> the Blender community that will be release under GPL.
> >>>
> >>> Cheers.
> >>> Antoine
> >>>
> >>> #######
> >>>
> >>> My name is Antoine Cottin, I'm a research scientist specialized in
> active
> >>> remote sensing applied to earth sciences. For the last 8 years I've
> been
> >>> working for/with a laser scanner manufacturer developing processing
> tools
> >>> chain for laser scanner data processing. I have an extended knowledge
> in
> >>> the various laser scanner systems (hardware and software) and their
> >>> associated data format.
> >>>
> >>> I'm the founder of Ultiscan, a French base company, specialized in
> laser
> >>> scanning services.
> >>>
> >>> Our main objective/activity at Ultiscan beside laser scanning assets is
> >>> data fusion between laser scanner data (points cloud) and 3D assets
> for 3D
> >>> rendering and animation. Here is an example of one of our last project.
> >>> This purpose of this project was to merge a 3D asset (the front gate
> of the
> >>> heritage building) with a point cloud of the whole building to show to
> the
> >>> client how the restoration of gate of the building would look like
> (some
> >>> work on texturing is still required):
> >>>
> >>>
> https://www.dropbox.com/s/u6bj80fi8ajqq8r/00_Gruss_Fusion_100p_Black.mp4
> >>>
> >>> The gate have been mesh, from the laser scanner data, and then
> >>> retopologize (from ~2500k faces to 600 faces), texture and render with
> >>> Blender. The points cloud animation was done with a commercial
> software.
> >>> Then the two pieces was merged together. To do that, we used Blender
> for
> >>> the camera tracking, the render and the compositing of the final
> result.
> >>>
> >>> Needless to say that it is doable but a bit tedious. Also,
> reconstructing
> >>> the 3D space from camera tracking defeat the initial purpose of using
> 3D
> >>> laser scanning data which are per essence more dense and most likely
> more
> >>> accurate.
> >>>
> >>> My company, and I, would love to have the points cloud capability
> >>> integrate to Blender to being able to generate this kind of animations
> (but
> >>> nicer),
> >>>
> >>>
> https://www.dropbox.com/s/qrlmt3zq84knlpq/00_Gruss_PointCloud_Animation.m4v
> >>>
> >>> but also to streamline and help with some of the VFX pipeline.
> >>>
> >>> So we did some scripting to test the capability but obviously python
> >>> scripting isn't the good approach to read and display millions of
> points.
> >>> It also remain the question on how to efficiently display a points
> cloud ?
> >>> as point cannot be rendered, a turnaround is needed. We tried to put a
> >>> small circle at each point of the points cloud but this literally
> overflow
> >>> Blender.
> >>>
> >>> In the shed of our tests, we have to get into Blender development for
> this
> >>> and we are willing to give a try. I've contacted Ton Roosendaal and he
> told
> >>> me to post the idea in here to discuss it's relevance.
> >>>
> >>> I'm a self taught coder and I've been coding for the last 13 years
> mainly
> >>> in IDL/ENVI, which is a dedicate remote sensing/data visualization
> >>> language. I've knowledge and more limited expertise's in C and
> >>> object-oriented language like python and objective-C.
> >>>
> >>> I think the best way to succeed to such project would be to team-up
> with
> >>> some mentor(s) that already have experience in Blender development. So
> if
> >>> someone is interested in this project, please give us a shout.
> >>>
> >>> Please give us your idea on this project.
> >>> Looking forward to discuss this exiting project with you.
> >>>
> >>> Respectfully your.
> >>> Dr. Antoine Cottin
> >>> -------------------------------
> >>> Ultiscan
> >>>
> >>> _______________________________________________
> >>> Bf-committers mailing list
> >>> Bf-committers at blender.org
> >>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>>
> >>
> >>
> >
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> >
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>



-- 


--------------------------------------------------------------------------
Jace Priester
Threespace Imaging
jacepriester at threespaceimaging.com
559-284-0904
--------------------------------------------------------------------------


More information about the Bf-committers mailing list