Pretty straight forward question - is there a way to seed any of the noise functions in the new math lib?
It kinda looks like cnoise() is a continuous noise function that accepts the domain position as its argument, so not sure where a seed would even come into play.
If it is anything like Mathf.PerlinNoise(), the two arguments you give it effectively ARE the seed, so just make up your own seed offset and add it in before passing it in.
Beyond that, the obvious follow-up question: have you looked in the API for it?
I have also wondered about this some years ago. Perlin noise has an array of values which the noise is “interpolated” from (I don’t understand the mathematics/voodoo behind this stuff). So I assumed when the array is reordered/shuffled the noise would have a different appearance in the same coordinate space.
But for topic if you need for example 2d noise you could query for 3d noise and one ordinate is your “seed” then. But I have not used the new math lib. I just read in the DOTS forum that it lacks some convenience features (like descriptive names, dimensions, documentation).
Since I’m working on procedural planet generation AGAIN, I came upon OpenSimplex noise which is seedable. So if you heavily depend on seeding use this as an alternative/substitute. But the point of the new mathlib is burst-compilability (SIMD) and thus speed. So its a tradeoff (as almost always).
And AFAIK the source code for mathlib is available. So in case of doubt you implement seeding yourself there. But this makes updating this lib a bit unpleasant.
Apologies for the late response, but after some searching I think @Kurt-Dekker is right, I just ended up being able to inject a seed like so:
float2 input = new float2((x / noiseMod) * noiseScale + seed, (z / noiseMod) * noiseScale + seed);
n = noise.cnoise(input);