Page 1 of 2 12 LastLast
Results 1 to 20 of 28
  1. #1
    Member Vrav's Avatar
    Join Date
    Jun 2010
    Location
    Seattle, WA
    Posts
    31

    [Addon] EditNormals: Transfer Vertex Normals

    MAY 2016: See Y.A.V.N.E. by Umdee. http://blenderartists.org/forum/show...8Y-A-V-N-E-%29



    MARCH 2013: Please see felixSchl's thread as he is implementing something like this in C.
    http://blenderartists.org/forum/show...ing-in-Blender

    Originally Posted by Updates
    In progress: Cleanup / speed tweaks, discussion.

    Known bug:
    If a mesh has shape keys, this will not work. Same goes for armature - do not think this can be solved via python.

    Possibly wanted:
    Different near-normal selection using Object.closest_point_on_mesh; unfortunately, a mysterious bug is preventing this from working at the moment, but is being looked into.

    Released:
    0.2.0: Changed 'Ignore Outer Edges' to 'Boundary Edges' with three options: ignore, include, only; 'only' can be used to join boundary seams across loose meshes, as in the neck example.
    0.1.5: Cleaner point distance via vector magnitude
    0.1.0: Initial release
    Easy download: https://dl.dropbox.com/u/398143/blen...vertexnorms.py





    ---

    I would like to create more tools for editing vertex normals than this, but here's the first simple operator intended to serve as an example for the usefulness of such a feature. Though modifying blender's source is a bit beyond me at the moment, eventually storing the custom vertex normal offset in bmesh/mesh data and having it automatically affect rendering and export would be very nice, not to mention facilitate more interesting vertex normal editing tools.

    Feel free to offer feedback and suggestions. The video below explains the operator and depicts three example use cases. This may also be useful for normal map baking; I have not yet tried it for that.
    Last edited by Vrav; 19-May-16 at 07:54. Reason: YAVNE link



  2. #2
    Member
    Join Date
    Oct 2008
    Location
    Melbourne, Australia
    Posts
    67
    Very, very nice! I would love to see this kind of thing supported better in Blender, as you say. But this is a great demo.



  3. #3
    This looks extremely interesting. Everything that makes vertex normals even halfway usable inside Blender is very welcome.
    I noticed during your video that entering / leaving edit mode actually resets vertex normals. I'm fighting with getting OBJs coming from CAD applications into Blender and this vertex normals recalculation "feature" alone makes all my efforts futile
    Do you (as someone who obviously has a deep knowledge of Blender and normals) know, why it is this way and if there's even the slightest chance in the future when vertex normals of imported objects will stay intact and be usable inside Blender?

    Thanks



  4. #4
    Member Vrav's Avatar
    Join Date
    Jun 2010
    Location
    Seattle, WA
    Posts
    31
    debris, I can only hope that a demonstrative python operator like this will influence the decision to add a custom normal offset data layer to mesh vertex data. If such data existed within the mesh, it would be stored regardless of recalculation of the base vertex normal, and could be defined on import.

    While this operator is functional, it is indeed superficial. Saving the modified data is possible via python, and I suppose it wouldn't be too problematic to save and reapply vertex normals on a mesh, but the user operations required would be a bit unsightly. Custom normals would benefit most from a custom data layer, possibly added to a mesh via an 'Edit Normals' modifier, but that's just an idea. Simply always having custom normal data on mesh data would be more compatible with importing modified normals.

    Before adding such data, one must decide on a few things, such as... is it an offset, or a custom normal entirely? When is it applied to viewport rendering, and does it affect the vertex normals as they stood previously when applied? (If so, they could easily be exported but the offset or custom normal would need to be re-applied each time they risk recalculation, such as entering/exiting edit mode.)

    This sort of thing would probably be good to discuss.
    Last edited by Vrav; 02-Jul-12 at 05:30.



  5. #5
    Thanks for your answer and keep up the good work!
    Let's hope the best that this whole issue will be solved inside Blender once and for all!
    It's essential for interchange between different tools in a professional pipeline and that's the only way Blender will ever find its way in larger studios. We are a small/midsized studio and would love to use Blender for different tasks, but missing proper vertex normal support and Alembic I/O (and I emphasize "input" as well!) are the two major obstacles we face at the moment.



  6. #6
    Member Vrav's Avatar
    Join Date
    Jun 2010
    Location
    Seattle, WA
    Posts
    31
    Yes, I agree.

    For now, I've added some extra functionality to the script as it exists. Rather than a checkbox for ignoring outer edges, you can now choose to ignore, include, or operate only on the boundary edges. When choosing to operate only on the boundary edges, each object is affected by every other selected object regardless of which is active. Using this, the example of a head/neck seam in the video can be accomplished by simply selecting the two meshes and selecting boundary edges: only.



  7. #7
    This looks awesome, Vrav.
    Thanks

    *edit* I just tested it out and it works like a dream! Thanks!
    Last edited by metalliandy; 09-Aug-12 at 15:36.



  8. #8
    Whoa, this is the most useful useless addon for Blender. Really nice presentation video, hopefully you'll keep working on this. As metalliandy said, your addon already works like a dream and it's such a shame that one can't render or export these modified vertex normals. Here's a really quick test. Thanks for your hard work!

    normaltransfer.jpg



  9. #9
    Member
    Join Date
    Oct 2008
    Location
    Melbourne, Australia
    Posts
    67
    Wow, nice result! I've been wanting to do that kind of thing for ages.



  10. #10
    Originally Posted by z0r View Post
    Wow, nice result! I've been wanting to do that kind of thing for ages.
    Me too... it's the main reason I don't use Blender in production yet. It's a riddle to me how one can survive without vertex normals when not using subd objects...



  11. #11
    Member Annex2Nothing's Avatar
    Join Date
    May 2012
    Location
    England
    Posts
    119
    Originally Posted by debris View Post
    Me too... it's the main reason I don't use Blender in production yet. It's a riddle to me how one can survive without vertex normals when not using subd objects...
    It's definitely a disadvantage at the moment, and seeing how this adds all the needed bits and pieces that are so often relied upon for external game engines and so on, it seems so close to being all resolved.

    AND as such frustratingly tempting! Like being allowed to taste something so sweet and then being denied to swallow.

    Maybe it's my lack of knowledge of the basecode but it seems like it wouldn't be that much trouble to have the exporting process for certain formats preserve this information. Has anyone heard anything official from the main developers? I mean regarding the feasability of adding this functionality? Or at least opening the doors to this kind of development on the python side for the userbase such as you have done.

    Is it really such a small change for such a large reward? Or is it another mirage and just another aspect of being so frustratingly tempting, look but can't touch. Touch but don't taste, taste but don't swallow and all that jazz.

    I think the recent importance given to Android interaction and the massive recent emergence of mobile/android gaming would potentially give this normals issue a bit more prominence.

    But then as I said before what might seem simple to me being ignorant of the code might be similar to someone asking so why can't we just build a time machine? It's a simple enough idea. Obviously it's the implementation and the devils in the details.

    Thanks for reading if you got this far, this point seemed in my head to not take up this much space.

    Aidy.



  12. #12
    Member MmAaXx's Avatar
    Join Date
    Jun 2008
    Location
    Tokyo
    Posts
    1,719
    the link is broken



  13. #13
    Member Vrav's Avatar
    Join Date
    Jun 2010
    Location
    Seattle, WA
    Posts
    31
    MmAaXx: Well, I don't know if this still even works in the latest versions of Blender, and there's a lot I would code better about it if I rewrote it today. If you still want to try it out for some reason, here is the code on pasteall! http://www.pasteall.org/40119/python



  14. #14
    Member MmAaXx's Avatar
    Join Date
    Jun 2008
    Location
    Tokyo
    Posts
    1,719
    thakyou very much!



  15. #15
    Member MmAaXx's Avatar
    Join Date
    Jun 2008
    Location
    Tokyo
    Posts
    1,719
    it works perfectly in 2.66 too 8)



  16. #16
    Hey, this is a cool add-on. I have been waiting for these sorts of features a long time now. Now I decided to try and add this functionality on C-level. I was wondering if you are interested in collaborating? I made a thread here: http://blenderartists.org/forum/show...ing-in-Blender. I am interested in adding this sort of functionality that you have so if we work together we should be able to get sth going rather swiftly.



  17. #17
    thak you .



  18. #18
    Please continue work on this. This is fantastic.



  19. #19
    Member CasperN's Avatar
    Join Date
    Feb 2006
    Location
    Sweden
    Posts
    40
    I second that, we really need to have a working exporter for this so we can export to studio pipelines. It's a shame that Blender doesn't support edited normals yet.



  20. #20
    Thumbs up. I need that addon too, good job.



Page 1 of 2 12 LastLast

Posting Permissions

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