Procedural Imperfections, Tear and Wear using Bevel Shader - Blender Cycles Tutorial
Вставка
- Опубліковано 11 вер 2024
- Hey, I just met you, and this is crazy, but here's my twitter, so follow maybe? / oossoonngg
or instagram for that matter / oossoonngg
If you want to follow along with the geometry I have, you can get it here: gumroad.com/l/... (has .fbx and .blend scene file)
We will be using a Bevel Shader that comes with Blender Cycles to generate a tear and wear imperfection mask. "Wait a minute! Bevel Shader only generates normal information!" - you say, and that's exactly right! BUT we will force it to do what we want it to do, using short node setup to do so. Let's dive in!
Don't forget to leave a comment if you have ideas or questions, and hit Subscribe to not miss other videos in the series. And have a nice day!
=====================
Music
O. Song - Eonje (Spotify link: open.spotify.c...)
Hey, I just met you, and this is crazy, but here's my twitter, so follow maybe? twitter.com/oossoonngg
or instagram for that matter instagram.com/oossoonngg/
Super innovative, thanks so much! Came here after breaking my head over the singular value that the pointiness node throws out.
Wow, I was just thinking how much the "pointiness," attribute sucks. I never thought of using the bevel modifier!
There is a major improvement I made to your node setup though. Instead of messing around with color ramps, we can simply use the _dot product_ to take the "difference" between the default normals and the beveled normals, giving us the edge detection we want. This makes the technique as close to perfect as we are going to get.
You can see an example here: imgur.com/a/vbNgsur
That's a pretty neat setup, have not considered doing it like that. Sweet, thanks!
I was thinking on how to use the bevel node for exactly this for a few attempts now and never got it as good as you showed it here. Probably since I didn't really understood those math node operations like absolute. I learned something really great from you. Thank you very much!
The problem with the bevel node is that it still has not an option for choosing only the convex or concave edges of an object (so that someone can apply 'dirt' and 'wear' separately on it). Blender needs a seperate node for fully fledged edge detection needs. The bevel node does a lot but it is not efficient for making advanced edge editing work. A fully fledged edge detection node in Blender could make almost needless the use of apps as is Substance Painter.
You can always add/negate/multiply/other_math_stuff the results of rendertime AO to control it if you wish. Each scenario requires different approach, and apps like sbsP and QMixer are definitely something that is useful.
This video was really useful. Thank you for sharing this.
Man, you are the best teacher! A really hope you make some lessons for free or commercial course, i't no matter, you amazing! Mantra course blowing my mind ( sorry for my goofy English ).
Are we talking about blender here? And thanks for the warm welcome
awesome technique
In my opinion all these node setups only work with simple objects like cubes. If they have multiple edges, it is not really possible to control, which edges are highlighted.
With a mesh with many different angles edges, it's really hard to get something. ALways one plane is poping grey somewhere.
there is indeed a better, more precise way of achieving this exact effect. video arriving soon(ish)
Great demo. Out of curiousity, what benefits does this workflow have over using something like the geometry>pointiness node?
Geometry > Pointiness relies on the amount of geometry present in the model.
Simple test:
- Create a material that is just the pointiness value hooked up to an emission shader
- Apply this material to both a default cube, and a cube that has been subdivided a whole bunch. They will look completely different.
This method means that there is no difference between a model with lots of geometry, vs a model with almost none (excluding areas that actually become more pointy with less geometry). It also means that using the _subdivision_ modifier with higher render subdivisions won't surprise you by looking different after the render.
@@ZachHixsonTutorials ahhhhh thanks for the explanation. That's great. I was thinking all the way through this demo.. maybe this could be made into an Uber shader. Looks killer
Connecting this to any input will solve your "ubershader". I'd prefer flexibility over rigid solution.
hi,I made it and worked on a box ,but it get wrong on other shape
heya, there's a part of the video where I show that it doesn't work on other geometry as good, and i tweak it accordingly until it fits