Without using normal map, how do I make something look flatter in arbitrary direction?

model: Godette by Pablo Dobarro
Figure 1

Let’s say I want to smoosh character face to make lighting appear flatter while keeping the geometry. What kind of shader node setup can do this in a simple non-destructive way?

  • Clasm@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I haven’t seen a way to do this in-shader yet.

    But I know that there’s at least one tutorial out there that just had a couple of references faces/planes facing the directions they wanted, then just copy/pasting the normal from the reference planes onto the appropriate mesh sections. The reference faces were erased afterwards.

    • g6d3np81@kbin.socialOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Yup, probably watched the same video. Those are much more focused on flat shading… like dead flat.

      There is Abnormal addon but I find doing it with mesh data (beyond vertex weight / vertex color) is kinda cumbersome.

      After some fooling around, I find using normal form texture coord node is all I need.

      1. Take normal from texture coordinate node
      2. Rotate X to adjust up/down facing
      3. Map range Y axis to use as weight (or weight paint)
      4. Subtract result from true normal
      5. Transform vector from object to world (normalize first, maybe?)

      Not great but good enough, most importantly not ugly. Quite easy and fast to apply to different model too.
      Barbara from Genshin - Mihoyo
      Node