Enhanced bevel shader node using Raymarching or SDF?
Chances are if you've seen a product render in the past 5 years or so- you have seen at least a handful of renders that use this technique (whether it was done in Blender, C4D, Modo, etc).
Those of us who use the bevel node can all attest to what a gamechanger it is. If you're working with CAD product design for product renders, it means not having to go through and fix triangle soup so you can add real bevels on every surface. Jam two arbitrary objects together and a seamless blend can be created between the two without any supporting geometry or boolean operations. It's magical!
Now, having said that- it does have some fairly strict limitations. Limitations that, if removed, would open up an entirely new set of possibilities.
First: it does not work with realtime rendering- so you need to fire off a render to see the result. Not the end of the world, but it does have an impact on iteration time.
Second: it does not handle material changes/blending very well. Again, not the end of the world because typically you're doing this to objects that share a material, but it's a limitation in some circles (notably designers).
Third, and most important: It does not have any impact on the silhouette of the model. This requires some tricky planning because some areas of a mesh will need actual geometry bevels to create the desired result, leaving this technique most useful for things we call 'micro-bevels', or removal of infinitely sharp edges in a render. Still very useful, don't get me wrong- but it is a limitation.
However, recently I've become interested in raymarching and signed distance fields and wondered what kind of possibilities it might open up for product renders and 'abstract design'. I've had a difficult time articulating some of these ideas- but today I ran across a video that demonstrates a couple of exciting possibilities, notably the merging and blending of disparate objects with a controllable tolerance- and in real time!
Take a look: youtu.be/Cp5WWtMoeKg
10 Comments
Take a look at this web-app . I'm pretty sure it's open source, so if a developer is interested, this would be a good place to look first.
So is the link in the video, I think. I've been following that coding adventure series, glad to see there's a new episode!
That looks pretty cool. I wonder if it works as well for arbitrary mesh surfaces. He says at one point in the vid "...you can do this for cubes, spheres...really any other shape you can define a distance function for."
You should get a still from the video to put in your post so people don't have to click the link to visualize what you're talking about.
* @dpdpforlife * good idea, done!
That's amazing. I an see great opportunities for volume shaders in which you could control the width and even blending effects.
How is that in development? Any confirmation links?
You forgot another thing: The Bevel Shader also only works within the same joined mesh and unlike Modo for example doesn't work when you shove multiple separate objects into each other even if they share the same Material. Would be really benefitial if it worked across multiple objects and was backeable into normal or heightmaps. :)
The thing with Signed Distance Fields is that it can be a bit finicky: It has a little bit of tolerance for non-manifold meshes, but not much, and it's sensitive to resolution changes. This would likely be super useful... as a separate feature from the Bevel functionality. It could be its own operation (Distance-Field Boolean ops) instead
* @camplowell * Yep, it definitely should NOT replace the Bevel Modifier or Bevel Node but I think that testure don't want to replace the Bevel Node or the Bevel Modifier.
UP!!!!! :D
I really like the bevel node! It just removes the limitations coming with the bevel modifier and a messy geometry and you got all the important points that should be improved on the bevel node. And the raymarching thing looks really interesting too!
A must need feature!