We find ourselves needing magma noise all the time. I used to not like vecNoise much, because of the unfamiliar results I’m getting, but lately I’ve warmed up to it, mainly because of the huge speedup compared to sampling from textures.
There’s one big problem with it though - it doesn’t have a phase parameter, which forces us to simply apply transforms to it, which unfortunately doesn’t look good.
Is there anything I’m missing, to make it phase? If not, please take it as a request - it’s important for us.
First, you should not use VecNoise, but Noise, and Blend two colors with it if you want the same behavior as Noise texture.
VecNoise generates a vector that varies in 3D space, which is not what the Noise texture produces.
Set the Num.Octaves to 1 to produce regular Noise, otherwise you get Fractal Noise.
The Magma Noise is normalized between -1.0 and 1.0 (more or less), so you need to divide by 2.0 and add 0.5 to bring it into 0.0 to 1.0 range.
Divide the Position input by the Size value.
As for the Phase, it looks like you can approximate the same behavior by blending between two Noises with different offsets (e.g. add [1,1,1] to the Position input of the second Noise after it has been divided by the Size. However, it only works well between 0.0 and 1.0, more modifications would be needed to work with any value.
Something like this:
[attachment=0]Magma2_Noise_Phase_Emulation.png[/attachment]
Make a BLOP and see if it is still faster than a texture map.