Hey champ, welcome back! Great to see you.
Yes I’m in a 2 months long math course but it’s not doing very well at teaching me the necessary math to understand Blender. So here I am teaching myself maths again.
I’m not sure I understand your question
Ok, so in simple words, I need to understand the math (or the intuition) behind Blender’s Smooth F1 Worley Noise. For example, if I want to understand the Sine function node, then I need to understand what Trigonometry is and what f(x) = sin(x) is. But, studying Sine is way easier than studying such niche stuff like Smooth F1 Worley Noise because the studying resources are so scarce.
If you know Smooth Minimum, you’ll know that there will be discontinuous sharp corners generated by min function when two shapes (second image in my post: a horizontal plane (x,y,3) and Voronoi Diagram) are unified. That’s when smin function comes into action, it visually smooth out those sharp corners (third image in my post). So smoothing out the sharp corners of the union of a (x,y,3) plane and a Voronoi Diagram is understandable, but what about the union of the Voronoi Edges and Voronoi Diagram? How does Blender detect and register those Voronoi Edges as sharp corners to smooth them out? (forth image in my post)
The PDF unfortunately doesn’t explain how Smooth F1 Worley Noise works but instead introduce the intuition behind Smooth Minimum and Voronoi, which doesn’t help. The PDF is supposed to explain how Smooth F1 Worley Noise work.
The best information regarding Smooth F1 Voronoi that I’ve collected (from Reddit) so far is:
- In original F1 Worley Noise, to identify which Feature Point (Voronoi Seed) in the Coordinate System that a point (pixel) belongs to, we calculate all the distances between that sample point and all the existing Feature Points, then the outputted value of that sample point would be the minimum of those calculated distances: min(d₁,d₂,d₃,…).
In Smooth F1 Worley Noise, we use smin(d₁,d₂,d₃,…) instead.
This method seems easy enough, I can derive both Voronoi Diagram and Smooth Minimum so there shouldn’t be any problem. But the question raised is, does Blender even use this method?
Now is the moment that I need programmers to check the codes to see if the method is valid. Please help me with this if you can.
It seems you’re under the impression that there should be a node M…
Yes that was my naive view of this situation lol.
That’s where the minimum function comes in: if I wanted to know the value of the texture on a given point p , I’d find the distance from p to all the distributed “feature dots”,
{distance to dot_1, distance_to_dot_2, ... }
Oh whoops, I read this part after writing the “smin(d₁,d₂,d₃,…)” part above. Thank you, but could you please confirm that this indeed is how Blender works by observing the code? If it really is, then my doubts will be clearly immediately and this post comes to a conclusion.