Hi everyone,
I have been using Blender for quite a few years now and during those years I have seen Blender evolve at speeds that I wouldn’t have thought possible. Because Blender was evolving so quickly whenever I encountered something that bothered me I would just hope that the devs would fix/add it soon.
But recently I thought why not just contribute the things, that the devs might not have time for or overlooked, myself?
So here I am making my first contribution to the Blender sorce code, which is Fractal Voronoi Noise.
The idea is simple, take a layer of Voronoi Noise and add layers (or octaves) on top of it, with each subsequent layer having a larger scale and smaller amplitude than the previous.
Since I have read the Advice for New Developers
I have only implemented the concept for 3D F1 Voronoi Noise in Cycles for starters but I think the results are already convincing enough:
Using Fractal Voronoi Noise one can easily create a fully procdural Ocean with shader nodes (Displacement and Bump):
And what personally find even cooler is that it also looks great when used as a bump map (Bump only):
As for controlling the Fractal Voronoi Noise I would want to add three new parameters:
Detail
, which controls the amount of layers just like in theNoise Texture
Roughness
, which controls how big the amplitude of a layer is compared to the layer before, just like in theNoise Texture
Lacunarity
which controls how big the scale of a layer is compared to the layer before, just like in theMusgrave Texture
Normalize
, a boolean value, which if set totrue
will divide the entire Fractal Voronoi Noise texture by the maximal possible value, just like what theNoise Texture
does.
The complexity of my Fractal Voronoi Noise implemtation has a time complexity of O(number of layers
), meaning that it the amount of time needed to evaluate it is proportional to the number of layers to evaluate.
One important aspect of my implementation is that for the case where Detail
==0, which gives the current non-fractal Voronoi Noise texture, there was no measurable performance loss on my machine.
I would love to hear feedback.
Thank you for reading through my post and have a nice day!
Update:
The Pull Request for Fractal Voronoi noise has been merged into the main
branch.
Fractal Voronoi is scheduled to be released in Blender 4.0.
Any 4.0 builds released after 14.06.2023 should already include it.
Thanks to everyone for helping!