thank you for this impressive reverse engineering of the noise functions. I'm curious why they have included all these variations for seamingly quite similar results (at least to my eyes - except the one with a blue bias). What practical applications would you see the various types used for ?
That is a really good question and I'm still trying to wrap my head around why I need to have a vector rather than just use some regular noise. I suspect Affinity had a really good shader programmer working for them who wrote all this code and then left the company before they had a chance to fully document it, and now nobody at Affinity really knows much about it. dir seems to generate two random numbers, one for the amplitude of the vector and the other for the direction of the vector. dir is good for adding randomness to xy coordinates (see the fur preset) although I’m not sure why a vector works better than just random numbers. udir I now realize must stand for unit vector (vector of length 1) and then have a random direction. I have seen some discussion on Reddit about how to generate this but they didn't say what they wanted it for. The different interpolation modes had already been generated for the other types of noise so they may as well use the same code. I tried using a random vector for a Brownian noise system, where a particle is moving around randomly and the vector is used for the velocity but I don't think it will work out. dir3 remains a mystery to me.
@@plasmaportl thanks for your reply. I agree it looks like engineering bottom-up approach where someone implements all sorts of basic functions just in case it might be needed in the future. The vector nature could maybe be leveraged in displacement type of effects where the different noise properties become more apparent. Procedural Textures is clearly shader oriented (as all the adjustment layers, one pixel at a time). I wonder if these vector functions could be used in the distort>equations filters, which plays with coordinates space
thank you for this impressive reverse engineering of the noise functions. I'm curious why they have included all these variations for seamingly quite similar results (at least to my eyes - except the one with a blue bias). What practical applications would you see the various types used for ?
That is a really good question and I'm still trying to wrap my head around why I need to have a vector rather than just use some regular noise. I suspect Affinity had a really good shader programmer working for them who wrote all this code and then left the company before they had a chance to fully document it, and now nobody at Affinity really knows much about it. dir seems to generate two random numbers, one for the amplitude of the vector and the other for the direction of the vector. dir is good for adding randomness to xy coordinates (see the fur preset) although I’m not sure why a vector works better than just random numbers. udir I now realize must stand for unit vector (vector of length 1) and then have a random direction. I have seen some discussion on Reddit about how to generate this but they didn't say what they wanted it for. The different interpolation modes had already been generated for the other types of noise so they may as well use the same code. I tried using a random vector for a Brownian noise system, where a particle is moving around randomly and the vector is used for the velocity but I don't think it will work out. dir3 remains a mystery to me.
@@plasmaportl thanks for your reply. I agree it looks like engineering bottom-up approach where someone implements all sorts of basic functions just in case it might be needed in the future. The vector nature could maybe be leveraged in displacement type of effects where the different noise properties become more apparent. Procedural Textures is clearly shader oriented (as all the adjustment layers, one pixel at a time). I wonder if these vector functions could be used in the distort>equations filters, which plays with coordinates space
@@calamalabar That's an interesting idea.