Hey everyone, I have been trying to recreate the ray marching method from near the end of the nodevember live stream https://www.youtube.com/watch?v=3UWHKtKsIbU .
Does anyone know how the SDF nodes are implemented?
Hi nosfero32,
know what you're getting yourself into!
Here's a simple example of an SDF of a line segment:
With Raymarching this could give for instance this (here the Raymarching stops at a certain, constant distance from the line):
You might wanna watch this video (to start with):
https://www.youtube.com/watch?time_continue=4&v=62-pRVZuS5c&feature=emb_logo
I haven't found any Blender Raymarching videos, but the technique is used 'a lot' in games. If you Google SDF and Raymarching you'll find a ton of resources, but you'll have to 'translate' them to Blender.
It's not an easy topic! Have fun and good luck.
Thank you so much for this Spikeyxxx. I really appreciate the information, this is exactly what I was looking for to get started. Looks like I will need to build up a library of primitive SDF shapes which can be used along with union and intersection operations to create more complex shapes. Wish I could remember more vector calculus, all that parametric surface and vector math would be useful but its been awhile.
I found the following resources so far https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
https://www.alanzucconi.com/2016/07/01/signed-distance-functions/
If you have any more examples or particularly good resources I would really appreciate that as well!
It looks like this could get pretty computationally intensive, are there any tricks for improving efficiency I should be aware of?
Thanks again Spikeyxxx.
Hi nosferu, Inigo Quilez is indeed a great resource. (The best I could find, but I'm sure there are more out there...)
I'm not sure about this being computationally intensive; it's mostly just Math Nodes, which computers can handle in sleep;)
If you can get boolean operations to work, together with the primitives, you can basically build anything. I'm still working on that;)