Thread Reader

aVersionOfReality

@AversionReality

Jul 13

12 tweets
Twitter

Working on a tree shading tutorial, but I still can't resist messing with Normals. This uses Surface Gradients to steal the Normals from a Normal Map and add them to the custom sphere Normals. Just the leaf detail gets used without the bad base normals! #b3d #bnpr #Blender3d

The tree shader now has features! This is an NPR shader that uses the shading and gloss masks to alter color Hue as well as Value. There's also some fake shading based off distance from the tree's center, and subtle details like AO (but only in shaded areas.) #b3d #bnpr

The tree uses Sphere Normals as a base. There are many ways to do them. Typically NormalEdit modifier (needs an Empty) or Object Coords (needs a rotation driver.) But now with #geometrynodes, we can use Bounding Box center instead of an Object and avoid all that! #b3d #bnpr

This method also works with Instancing. Obj Coord Normals don't that well. NormalEdit works, but has downsides of being mesh based, and overrides real Normals. The important thing here is that the sphere Normals stay aligned in World Space regardless of transforms. #b3d #bnpr

Its not hard to have lots of trees, even though I have too many leaves here and no optimization. #geometrynodes can pass more data to let us randomize Normal detail in the shader to get more variation. (More tree shapes or modular instances needed for a full setup) #b3d #bnpr

A challenge of stylized rendering in Eevee is all the different light contributors (a big topic of the upcoming video). We want to work with Black and White shading masks, but what if we also want World Lighting? You can cancel it out and then add it back later! #b3d #bnpr

Alright you can fully cancel out World and Sun light, do your stuff that needs a black and white mask, and then restore them. Technically you could do this for Point lights too, it just means more drivers and Distance calculations to the object. #b3d #bnpr

Typically in NPR rendering we use a Sun Lamp with angle 0. But if we use 180, we can get value further around an object than usual. And if we don't want it, we can map back to the original look. This lets us effectively control the 'Angle' as a material parameter. #b3d #bnpr

Okay, had some other work and had to make some decisions about what to include in the video, but now I've finalized the leaf shader and can record! Here's some subtle changes to the Normals and AO detail level based on distance from camera. #b3d #bnpr

The tree uses only a single shading node. Everything else is Normals or other input parameters. And since the Normals are created from the Bounding Box Center and Position, it isn't actually dependent on the mesh at all. #b3d #bnpr

Here's a breakdown of some of the effects involved. Will have the video out soon! #b3d #bnpr

Here's the video! youtu.be/5itzrrhg8TE Blog post: aversionofreality.com/blog/2022/8/7/… #b3d #bnpr

Our subject is a spherical tree that will get custom radial Normals, mixed colors, and much more. There's lots of good foundational information like how to balance lights, map ranges, and mix colors....

aversionofreality.com/blog/2022/8/7/…

Stylized Tree Shader Tutorial — aVersion of Reality

Our subject is a spherical tree that will get custom radial Normals, mixed colors, and much more. There's lots of good foundational information like how to balance lights, map ranges, and mix colors....

aVersionOfReality

@AversionReality

Developing Stylized Rendering Workflows + Tools in Blender Tutorials: https://t.co/3SjfFegCUX Patreon: https://t.co/ODtW7tXLF9

Follow on Twitter