I am using Simplex Noise to generate a 3D field. The specific implementation is FastNoise-SIMD.
Assume I want to have a gradient (or derivative) for a sample at Sx, Sy, Sz in that field.
Do I actually need to sample the value of the field at all neighbours of sample S?
If so, that makes it a quite expensive operation, as the 4-octave Simplex Noise function I use is already quite expensive, evaluating them for all neighbours would make it too slow for my purposes.
Is there a way to directly compute the derivative of SimplexNoise that is cheaper than getting the deltas from the neighbours?
Some Perlin noise implementations have an analytical derivative. But none of the Simplex Noise implementations that I have found support sampling the gradient along with the field value.
Have analytical derivatives been done on Simplex Noise, or is it maybe not possible for Simplex Noise?