Home Technical Talk

do you soften or harden beveled edges on hard surfaces?

cturbo
polycounter lvl 3
Offline / Send Message
cturbo polycounter lvl 3
do you soften or harden beveled edges on hard surfaces?  when do you use vertex normals and set to face?

Replies

  • Eric Chadwick
    I used face-weighted normals recently for a public sample asset. Might be informative for you:
    https://github.com/KhronosGroup/glTF-Sample-Assets/blob/451f96783f5a4b32895616f2f5f98e12d877be9f/Models/SunglassesKhronos/README.body.md#modeling-with-face-weighted-normals

    Left to right in the image above:

    1. Simple geometry with face-aligned vertex normals (flat shading).
    2. Vertex normals averaged across neighboring faces (smooth shading).
    3. Bevels added.
    4. Vertex normals weighted to align with the largest faces.

    Basically if you can afford the extra vertex cost of bevels, then you should probably use face-weighted normals.

    But it depends on the surfaces, sometimes face-weighted doesn't work great, if you have some organic-shaped surfaces. For example the interior of the car hood here: https://github.com/KhronosGroup/glTF-Sample-Assets/pull/159




    Face-weighted normals kind of broke for these inset panels and their bevels, so I had to tweak the resulting normals, try different methods, etc. Still not perfect, but in the end it was good enough for what I needed.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    On a thing like  this car hood detail  I would rather make all normals same , borrowed /transferred   using normal theft/ data transfer or whatever   from a surface  before all those extra ridges  added  and keep their shading  in the normal map only .  Would work perfect for LODs too.
  • cturbo
    Offline / Send Message
    cturbo polycounter lvl 3
    oh brilliant! Thanks, that is definitely useful. I spoke to my teacher, and he said you have to cut the uvs if there is a bevelled edge. What does he mean by this, and where do you cut if there are bevelled edges? Apparently, it does something to the normals to make a better bake. How do i know what way the normals should be facing and how do i know if its shooting in the wrong direction?
  • cturbo
    Offline / Send Message
    cturbo polycounter lvl 3
    You have been so great; I just want to ask another question: On a model some of the pieces are mirrored to the other side. I want to achieve high resolution by making use of much of the space in the UV layout. Do you include the mirrored geometry on the UV layout; for example, if I was modelling a car with 4 wheels, would you put 4 wheels on the UV layout or just 1 to maximise UV layout space, because it's a duplicate, or do you layout everything?
  • gnoop
    Offline / Send Message
    gnoop sublime tool
      You need to split UV edge  when you split vertex normals along an edge (i.e make the edge  "hard" or in 3d max terms set different smooth group in adjacent faces.  For a videocard it's no difference  would you just split the geometry )    Beveled edge  on the other hand allows you to keep smooth shading across it.  So unified vertex normals along the edge .  Id est  non necessarily having UV splits .    So  its other way around.    You probably misread your teacher.  Or they offer you very   inefficient way  to avoid baking skew issues   multiplying vertex count of your model tremendously.
         Beveled edges could perfectly exist inside UV islands . Hard/split/ edges or borders of smooth groups  in 3d max terms needs corresponding splits in UVs.    
       Sometimes you still may have UV island border along beveled edge.  In such case you can split /make hard  the edge having UV seam but not necessarily.       
      What modern 3d soft offer is "face waiting"   of beveled  edges .   When vertex normals alone both edges of a bevel   are rotated to be  perpendicular to adjacent  bigger  face.  It keeps shading gradient  within thin bevel  and  eliminates  it from bigger  adjacent faces.  
      To see vertex normals  you can use  edit normal modifier  in 3d max or or mesh edit mode viewport overlay in Blender. ( Blender calls them "split normals", middle button in mesh edit viewport overlay)
     

     


  • Eric Chadwick
    If the vertex normals are split (making a hard edge on the low-poly), then you usually need to split the UVs too, and add empty UV space between the two islands. 

    Bevels do not require UV splits, in general. There are exceptions, so ask them to explain the “why” behind their rules.

    Mirroring and duplication are explained a bit here http://wiki.polycount.com/wiki/Normal_Map_Modeling

    Yes, wheels are a great candidate for duplication/reuse.

    I recently did a normal trick for wheels, might help you: 

  • gnoop
    Offline / Send Message
    gnoop sublime tool
    cturbo  about duplicating details  it's up to you.   For a car it's perfectly ok to have only one  wheel in UV .   Be careful with mirroring . Better to be done on mesh level using special Mirror /symmetry  or whatever.  Mirror modifier in Blender   e.g .   Doing it on object level which often is just negative scaling   may cause  issues with flipping normals and mismatching tangent /bi-normal vectors against baked  normal map ?   Although I had little to no  such issues in modern software  for a while.  
  • Eric Chadwick
    Negative scale mirroring, in my experience, is bad mostly because the normals are flipped. 

    Most games render polygons only single-sided, so you end up with half the model looking inside out.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Perhaps it's just Blender behavior. When you select an  object and  do mirror X  I suspect it just scales  it negatively.   Showing  and rendering  it just fine with correct normals  within Blender.  
    But when you export the mesh its normals are getting inverted.       So I use mirror modifier  and   two vertex group  with _L and _R suffixes  to delete  redundant part later by   GN modifier.
  • stray
    Offline / Send Message
    stray node
    gnoop said:
     When you select an  object and  do mirror X  I suspect it just scales  it negatively.   Showing  and rendering  it just fine with correct normals  within Blender.  
    Yes. So after mirroring one should remember to Apply Scale, and flip the normals.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    stray   Yeah . it's also a way but I recall it made me some issues with edited/ transferred normals.    While mirror modifier is always  a safe way.
  • stray
    Offline / Send Message
    stray node
    @gnoop, oops, yeah I see what you mean now... I guess, it'll get better when they add normal editing to GeoNodes.
Sign In or Register to comment.