Results 1 to 19 of 19
  1. #1
    Member bashi's Avatar
    Join Date
    Oct 2010
    Location
    Bern, Switzerland
    Posts
    1,019

    Why Blender needs Single Vertices Color support

    I'm pissed off... sorry.

    I'm working on integrating Photogrammetry Tools into Blender. (Photogrammetry = getting 3d Data from Images).

    Basically a 3d Scanner from Images.

    Everything works fine, but the main issue is: Blender has no vertex colors for single vertices... This means concretely: This Point Clouds need to be cleaned up - delete "noise" vertices. I'd like to do this in Blender - But without having Color on those Points it's almost impossible to do...

    This single "issue" renders Blender pretty much completely useless for anything Point Cloud related, which is imo a shame. (together with normal calculation every time edit mode)

    I'm way not the first confronted with this issue - i have seen forum entry dating back 2006...

    So why the hell do we don't have Color for single Vertices???? Is this a very difficult thing to do?

    Nowadays with Lidar Scanner Data widely used in VFX - I don't think Point Clouds are something such exotic...


    I'm really about to ditch Blender for those kind of things... Which i think is too bad, since we could have nice 3d Models from Photos within a few weeks (for osx at least atm).



    I really don't know how to go about things like this... Is there any use of contacting BF about this? What do you think? Should we somehow make some noise for this? Or should i just leave Blender for such things?
    Last edited by bashi; 06-Feb-14 at 10:47.
    bwide.wordpress.com - Free NodePack, 70+ Cycles + Compositor
    Happy Destruction with: Bullet Constraints Tools



  2. #2
    Member comeinandburn's Avatar
    Join Date
    Feb 2007
    Location
    toronto, canada
    Posts
    1,165
    Someone correct me if I'm wrong, but doesn't the newly revamped develeper/bugtracker page allow suggestions as well? I'd imagine having this type of point cloud functionality would be immensely useful, especially with the upcoming Gooseberry project.

    good luck... and fingers crossed

    Here's a link to a submission on the bugtracker regarding what you're talking about but it was closed since it's not considered a bug but a feature request

    https://developer.blender.org/T33582

    and a patch

    https://developer.blender.org/T37724

    hope this "point"s you in the right direction.
    Last edited by comeinandburn; 06-Feb-14 at 10:10.



  3. #3
    Member bashi's Avatar
    Join Date
    Oct 2010
    Location
    Bern, Switzerland
    Posts
    1,019
    Originally Posted by comeinandburn View Post
    Someone correct me if I'm wrong, but doesn't the newly revamped develeper/bugtracker page allow suggestions as well? I'd imagine having this type of point cloud functionality would be immensely useful, especially with the upcoming Gooseberry project.

    good luck... and fingers crossed

    Here's a link to a submission on the bugtracker regarding what you're talking about but it was closed since it's not considered a bug but a feature request

    https://developer.blender.org/T33582

    and a patch

    https://developer.blender.org/T37724

    hope this "point"s you in the right direction.
    Thanks for the heads up.

    I have not found any suggestions thing on developer.blender - they are all meant to be used by developers/module members...

    the patch is just to generate Point Clouds...
    bwide.wordpress.com - Free NodePack, 70+ Cycles + Compositor
    Happy Destruction with: Bullet Constraints Tools



  4. #4
    So why the hell do we don't have Color for single Vertices????
    The "vertex colors" are properties of faces, not vertices, so that you can have differently colored faces without splitting up the mesh. As a consequence, there cannot be a "vertex color" without a face.

    It bothers me as well, because nobody else (that I am aware of) does vertex colors this way and it makes converting from one to the other ambiguous and destructive. Also, while the data is stored as an 8-bit/channel color, querying it through the API yields floating point values (afair Cycles uses those, so it's four times the data at no benefit). It would be useful if the vertex colors were float-precision, not byte-precision.

    The CustomData layer system actually allows for arbitrary per-vertex, per-face and per-edge properties, it's more a matter of how the tools use that data. Ideally, all per-vertex data (weights and colors) could be interpreted and used as color or weight.
    Is this a very difficult thing to do?
    It would require changing pretty much all tools to handle both cases (per-face and per-vertex colors).

    EDIT: By the way, Blender currently has the opposite issue with normals, which are per-vertex. If you had per-face normals, you could have sharp (or semi-sharp) edges without splitting the mesh.



  5. #5
    Member
    Join Date
    Dec 2011
    Location
    Germany
    Posts
    3,991
    Bastien is working on loop normals:
    http://mont29.wordpress.com/2013/10/...needs-testing/



  6. #6
    Member ideasman42's Avatar
    Join Date
    Mar 2004
    Location
    Australia
    Posts
    5,354
    Currently blender makes no pretense to be able to handle point-clouds usefully, we don't have it because no developer chose to sit down and make it work really well - adding vertex color per vertex is trivial. but then you want tools to manipulate it, api's and viewport display... Theres nothing especially hard about it... just its not a priority for any devs AFAIK
    Podcast * dotfiles * My Wiki * Blender/Stackexchange
    ideasman42<at>gmail.com



  7. #7
    A tip: use the vertex groups. Make 3 groups: red, green, blue. And you can weight the RGB color per vertex and per group.
    my scifi game (donation based): http://deadcyborg.com
    my Youtube Channel: https://www.youtube.com/user/gombabacsi/videos
    gamedev works: http://endrebarath.tumblr.com/



  8. #8
    Member bashi's Avatar
    Join Date
    Oct 2010
    Location
    Bern, Switzerland
    Posts
    1,019
    Originally Posted by abc123 View Post
    A tip: use the vertex groups. Make 3 groups: red, green, blue. And you can weight the RGB color per vertex and per group.
    a second i thought this would work - to display them in color! ;-) But you only can activate i vertex group at time, right? So it could be used to store the data.

    I really need a way to display the color in order to clean those point clouds.

    Edit: Plus Vertex Group/Weight does not get Displayed either if Vertex (no faces) only.
    Last edited by bashi; 06-Feb-14 at 14:26.
    bwide.wordpress.com - Free NodePack, 70+ Cycles + Compositor
    Happy Destruction with: Bullet Constraints Tools



  9. #9
    Member m9105826's Avatar
    Join Date
    Dec 2007
    Location
    Fairfax, VA
    Posts
    4,265
    Completely useless for imported point cloud data, though...
    Long time 3D artist and member of the official Cycles Artists Module
    https://www.youtube.com/user/m9105826 - Training, other stuff. Like and subscribe for more!
    Follow me on Twitter: @mattheimlich or on my blog



  10. #10
    Member bashi's Avatar
    Join Date
    Oct 2010
    Location
    Bern, Switzerland
    Posts
    1,019
    Originally Posted by m9105826 View Post
    Completely useless for imported point cloud data, though...
    You mean Andi's comment or Vertex Color per Vertex?
    bwide.wordpress.com - Free NodePack, 70+ Cycles + Compositor
    Happy Destruction with: Bullet Constraints Tools



  11. #11
    for time being
    can you cut you model in smaller pieces add faces then do you clean up !
    there is a function in blender to add faces to point cloud but not very powerfull!

    happy bl
    Nice 3D models = 25 % K.I.S.S + 25 % common sense + 25 % Inspiration + 25 % Knowledge
    Win 10 64 bits / Thanks and a Happy 2.79 with Cycles



  12. #12
    Originally Posted by bashi View Post
    a second i thought this would work - to display them in color! ;-) But you only can activate i vertex group at time, right? So it could be used to store the data.

    I really need a way to display the color in order to clean those point clouds.

    Edit: Plus Vertex Group/Weight does not get Displayed either if Vertex (no faces) only.
    You can assign a vertex to many vertex groups.
    And I think it is possible to write a shader that will render the vertices by color from the vgroups.
    my scifi game (donation based): http://deadcyborg.com
    my Youtube Channel: https://www.youtube.com/user/gombabacsi/videos
    gamedev works: http://endrebarath.tumblr.com/



  13. #13
    Member m9105826's Avatar
    Join Date
    Dec 2007
    Location
    Fairfax, VA
    Posts
    4,265
    Originally Posted by bashi View Post
    You mean Andi's comment or Vertex Color per Vertex?
    I meant adjusting vertex group colors after that fact considering that you'd still be throwing away all of the captured color data.
    Long time 3D artist and member of the official Cycles Artists Module
    https://www.youtube.com/user/m9105826 - Training, other stuff. Like and subscribe for more!
    Follow me on Twitter: @mattheimlich or on my blog



  14. #14
    Originally Posted by RickyBlender View Post
    can you cut you model in smaller pieces add faces then do you clean up !
    there is a function in blender to add faces to point cloud but not very powerfull!
    This isn't really practical. The point clouds you are dealing with when working with dense stereo photogrammetry or lidar can easily contain hundreds of millions of points. As a concrete example, the last set I scanned for the show I'm currently on took about half a day and generated in the neighborhood of 5 billion points of raw data. That was reduced to about 300 million points which were used to generate LOD meshes with 2-40 million faces that were sent to the downstream vendors for camera tracking and set extensions. That was by no means a large set, we collected about the same amount of data at another location in the morning and probably twice as much the day before.

    As noted earlier, point cloud support has been brought up before both here and on the devel list, but none of the developers seem interested. I think that is a little unfortunate considering how common lidar is in VFX and the benefits it can bring to things like camera tracking and modeling workflows. I do however have to disagree with bashi's wish to turn Blender in to a point cloud editor. Doing that well requires a lot of specialized features that I'm not sure would fit well in to the rest of Blender's framework. The last thing Blender needs is yet another half finished toolset. That being said the specific features he is asking for: the ability to have unconnected vertices (particles) with the ability to store and render arbitrary attributes such as color or normal, are much less invasive and would go a long ways towards making point clouds useful in Blender. Again, think survey reference for camera tracking or modeling.

    bashi, have you looked at CloudCompare? Currently it is the best open-source option for working with and editing point clouds. The tools for manually editing point clouds like you need are currently not great, however, the developers seem open to suggestions and this was something I was just commenting on in their forum [1]. I can also recommend commercial tools if you want, although expect 5 figure price tags.

    [1] http://www.danielgm.net/cc/forum/vie...php?f=14&t=191



  15. #15
    heard that some of these data can be quit large
    my only concern is can blender work with billions verts in first place ?

    thanks
    Nice 3D models = 25 % K.I.S.S + 25 % common sense + 25 % Inspiration + 25 % Knowledge
    Win 10 64 bits / Thanks and a Happy 2.79 with Cycles



  16. #16
    Member ideasman42's Avatar
    Join Date
    Mar 2004
    Location
    Australia
    Posts
    5,354
    For this to work efficiently it would make sense to define a new object type, it can still define customdata per-vertex, vertex-groups and use shapekeys - but no need for normals (though float[3] could be added as a customdata layer still).
    Podcast * dotfiles * My Wiki * Blender/Stackexchange
    ideasman42<at>gmail.com



  17. #17
    Originally Posted by RickyBlender View Post
    heard that some of these data can be quit large
    my only concern is can blender work with billions verts in first place ?
    Ideally it could but it wouldn't need to. This kind of data is almost always going to get preprocessed in other applications so there is plenty of room for splitting things up in to manageable chunks. GPUs are also pretty good at drawing point clouds. One of my colleagues mocked up the most basic OpenGL point cloud viewer you could imagine. Basically just load points from disk and draw them to screen, no clever caching, no decimation, no fancy tricks. It was easily able to push a few hundred million points on a card with only 1 GB of VRAM before memory filled up and navigation slowed to a crawl. Being able to work with point clouds of that scale is definitely useful.

    Originally Posted by ideasman42 View Post
    but no need for normals (though float[3] could be added as a customdata layer still).
    A lot of applications use normals to shade the point cloud based on the scene lighting so you can apply a solid color and focus on the geometry without regard to any per point color info that may exist. This is very useful in much the same way that Solid mode fills a different need than Texture mode for meshes. CloudCompare also has an implementation of Eye-Dome Lighting [1] that achieves much the same effect but doesn't require normals. That would probably be fine for working in the viewport but wouldn't be much help if you wanted to render the point cloud and have the shading match the lamps in your scene.

    [1] http://www.kitware.com/source/home/post/9



  18. #18
    Member ideasman42's Avatar
    Join Date
    Mar 2004
    Location
    Australia
    Posts
    5,354
    @jedfrechette - interesting to know normals are used, so could be optional display option (like color).

    Rather then new object types, a large update to the particle system is in the works, using alembic - so perhaps pointclouds can be static particles - maybe a better fit then having to add a new object type, and having the ability to edit particles will help other areas too.
    Podcast * dotfiles * My Wiki * Blender/Stackexchange
    ideasman42<at>gmail.com



  19. #19
    Originally Posted by ideasman42 View Post
    Rather then new object types, a large update to the particle system is in the works, using alembic - so perhaps pointclouds can be static particles.
    I haven't been following this closely but have been looking forward to the results. I think you're right static particles are the way to go. Certainly that's how I've seen people handle it most successfully in other applications. Here's an example with partio+Maya+Arnold [1] and I've done much the same thing in Houdini.

    I thought I would throw up this comparison I did awhile ago of a few different point rendering methods. Normals-based probably gives the cleanest representation but it is nice to have other options as, depending on the source, there is no guarantee you will get normals.

    pt_cloud_renders.jpeg

    [1] http://blog.faro.com/2013/07/25/luma...laser-scanner/



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •