7
submitted 10 months ago* (last edited 10 months ago) by g6d3np81@kbin.social to c/blender@lemmy.world

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?

top 2 comments
sorted by: hot top controversial new old
[-] Clasm@lemmy.world 3 points 10 months 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.social 3 points 10 months 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

this post was submitted on 15 Nov 2023
7 points (100.0% liked)

Blender

2524 readers
12 users here now

A community for users of the awesome, open source, free, animation, modeling, procedural generating, sculpting, texturing, compositing, and rendering software; Blender.

Rules:

  1. Be nice
  2. Constructive Criticism only
  3. If a render is photo realistic, please provide a wireframe or clay render

founded 1 year ago
MODERATORS