Even Substance has this for a long time (as seen above; at least two years !?); also Material Maker.. some addons for Blender or the stand-alone apps: SDF-Modeller or Clavicula ..
You may also have a look here: BlenderArtist: The BigSDF Thread.. ( yes.. i do not have enough money to spent on all the nice applications out there; but i stil have fun with those ones, so not so sure about 3DS Max or Maya ).
sdfs are used basically everywhere in computer graphics and have been for at least 40 years just think of them as a gradient in however many dimensions you're dealing with and it all makes sense
thanks guys . Well. I discovered them only in latest release of Substance Designer . Got the general idea . Just wonder if those sdfs are used in gamedev and how? As ray marching volumes ? Isn't it rather 3d textures and noise ? Should I learn sdf modelling or its like Metaballs in Blender ? Something that sits there since the soft founding but nobody uses ?
One has to distinguish: Signed distance fields or functions does define some volume. Ray Marching is one possible algorithm to compute SDF's. Another possibility are voxels.. even if "rastered".
One may say that the (original) metaballs are a very simple version of SDF.. only some radius around some ball centers (spheres).. later also extende to two center -> ellipsoid, lines -> capsule, rectangle -> rounded planar cubicle, cube -> rounded cubicle.
But of course this is a bitmore complex topic .. Here some other links:
Thanks for interesting links but still sounds like a toy not very relevant to actual game art production. Same as Metaballs. Rather an interesting toy.
I am for example still waiting when Designer would get any convenient manual touching/finishing tools or otherwize Painter get something like node based level of a direct kind of access to any part of of the flow instead of non stop puzzles with anchors, custom sbsar tricks etc. That pair is still so damn inconvenient. Even the splines I had so much hopes for and ended up using GN in Blender instead. Those ribbon like brushes in Painter is a first thing In years that I actually very much welcome and yet they lack a few very important features been available in decades old soft like Expression or even Zbrush pressure driven equivalent. Painter ribbons still looks mechanical vs Zbrush ones even as vectors, even with random flip.
So I am sort of puzzled when I see that actual development have in fact stalled or looks like dried out of ideas but new toy features are introduced instead helping with nothing.
Isn't toying with something the base for fun and inspiration ? Also: convenience or usefulness may be in the eye of.. ..and: at least you know a bit more about it now..
2D wise it can also be used for example in creating rain hitting the floor, creating a raindrop effect, 3D wise, intersections to visualize visibility shapes, ranges... or like a less resource hungry alternative to raytracing where you use SDFs for global illumination and so on.
Since you are specifically asking about SDF modelling:
The lure (and imo real pro side) of SDF Modeling is its ability of being non destructive.
In some tools you can also use SDFs to colorize (to some extend) without having to make and use UVs but the caveat is, SDF modelling can quickly turn into a resource hungry mess.
SDF Modelling is only like Metaballs in the sense of: you are going to compute lots of geo where it isn't needed. so i would also go so far and say it is a bit like the remesh feature -> Lots of unwanted geo.btw here is a quick test with 7 objects (still editable) stacked into each other with some booleans in it.
Using SDF models for Games, you will (as far as I looked into it) always need retopo, UVs and other steps afterwards. I agree withokidokihere, its a tool, have fun and experiment.
It's in my humble opinion far better to know a tool and not use it than to wonder if it could ever be useful or not.
@gnoop, it just occurred to me that you've been using them for years in designer, it just doesn't mention it
Using max() blend mode to combine heightmaps is exactly the same as using min() on a pair of SDFs that represent the same surfaces. (Invert and rerange to -1:1 to get the SDF)
It's mathematically more convenient to use SDFs if you want several distance functions to interact (because you work around 0 rather than arbitrary distances from 0) but that is literally the only difference.
If you go think about it for a bit you realise that UV coordinates are actually a pair of 1D SDFs and a whole world of possibilities opens up..
Thanks guys for interesting comments . it's of topic but last fall after years of polishing Designer fx maps and creating procedural approaches I suddenly found how actually better my work had been when it all was just manual, taste and intuition driven. Zbrush sculpts and coloring , hand painted textures I did in some impasto exportable software like Corel Painter . That procedural approaches are indeed look like quick magic but I never been able to weed out a certain mechanical recognizable style that even hard to explain. Kind of similar thing we instantly smell from Ai videos on youtube. But it's rather Designer's blobs , physically unrelated scratches and in general a bit too much of noisy everything everywhere.
Seems the whole art making software industry aims at eliminating hand intuition as a factor. Now I am torn in between the speed of quick procedural iterations and weeks of hand sculpting /painting everything. So this new SDF modeller in Designer seems another new interesting toy but again irrelevant to my desire for that lost hand intuition. In Painter brushes are so mechanical either, so lost of surface touch feeling , intermixing , automatic instant self masking , velocity and touch dynamic even Zbrush 2022 had. You need so much of inventing and workarounds to use Painter brushes for something like tire skid on a racing track wall for anything looking natural. Ribbon brushes was a huge step in right direction although.
Yet for some uncertain reason no CG related tools are looking for improving such things . Still only soft like Rebelle or Corel Painter that do. In Corel Painter that ribbon shifts in V randomly with each new stroke but not in SPainter while it seems so obvious and necessary.
Replies
Have a quick look here:
https://www.cgchannel.com/tag/signed-distance-fields/
Even Substance has this for a long time (as seen above; at least two years !?); also Material Maker.. some addons for Blender or the stand-alone apps: SDF-Modeller or Clavicula ..
You may also have a look here: BlenderArtist: The BigSDF Thread.. ( yes.. i do not have enough money to spent on all the nice applications out there; but i stil have fun with those ones, so not so sure about 3DS Max or Maya
just think of them as a gradient in however many dimensions you're dealing with and it all makes sense
Signed distance fields or functions does define some volume. Ray Marching is one possible algorithm to compute SDF's.
Another possibility are voxels.. even if "rastered".
One may say that the (original) metaballs are a very simple version of SDF.. only some radius around some ball centers (spheres).. later also extende to two center -> ellipsoid, lines -> capsule, rectangle -> rounded planar cubicle, cube -> rounded cubicle.
But of course this is a bitmore complex topic
https://daydreamsoft.com/blog/sdf-based-character-animation-and-deformation-systems-a-new-era-of-smooth-flexible-motion-in-games
https://80.lv/articles/custom-dynamic-sdf-based-game-engine
Also: convenience or usefulness may be in the eye of..
..and: at least you know a bit more about it now..
SDF Modelling is only like Metaballs in the sense of: you are going to compute lots of geo where it isn't needed. so i would also go so far and say it is a bit like the remesh feature -> Lots of unwanted geo.btw here is a quick test with 7 objects (still editable) stacked into each other with some booleans in it.
I agree with okidokihere, its a tool, have fun and experiment.
It's in my humble opinion far better to know a tool and not use it than to wonder if it could ever be useful or not.
Using max() blend mode to combine heightmaps is exactly the same as using min() on a pair of SDFs that represent the same surfaces. (Invert and rerange to -1:1 to get the SDF)
It's mathematically more convenient to use SDFs if you want several distance functions to interact (because you work around 0 rather than arbitrary distances from 0) but that is literally the only difference.
If you go think about it for a bit you realise that UV coordinates are actually a pair of 1D SDFs and a whole world of possibilities opens up..