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