RESOLVED - NoiseTOP - Simplex3D & 4D give artifacts

Hi there,

I noticed the NoiseTOP gives some artifacts when using the simplex 3D or 4D.
Not sure if this is since the last updates or was always the case, never noticed before.

See attached screenshot for example.

Cheers,
tim

Hi Tim,
I have noticed the same bug a few days ago, it can be reproduced on different Nvidia GTX, AMD Firepro and Intel Cards. I could reproduce this tearing on different translate coordinates in the transform parameters of the noise. It seems to be appearing as a diagonal that goes from one opposite corner to the other. It can be seen stronger with a high period and a low exponent. I also wonder if it is an inherent problem of simplex noise and its gradient interpolation technique or if it is a TD bug.
Digging through some older files I can say that this tearing has been there for at least three months in the experimental 20700 and official 16360 builds.

David

Yep, can replicate this on my machine - seems to also happen in 088 so as you say may be something to do

Using a 980Ti on Windows 10 with GeForce Drivers 397.93 if that’s any use

Hey, can you share the sample file that shows the seam in the Noise TOP itself? I’m looking into this, may have some leads.

Hi malcolm,

Haven’t installed the latest version yet, but here is an example of 2018.23120.

Cheers,
Tim
noisetear.tox (462 Bytes)

So interestingly, if you use the Translate X/Y parameters, the seam moves away, so it’s not tied to the diagonal of the image as it originally seemed, but rather the artifacts occur at certain points in the noise. Not sure if that helps you avoid the issue for your particular case, still looking into this more.

In my case I could use the Simplex2D version which doesn’t show the seams.

Could it be the pseudo random generator is the cause of the problem?
(not sure how the numbers are generated, but I usually have this kind of tearing problem when generating them using a big sinus())

Cheers,
Tim

I’ve found something in https://hal.inria.fr/hal-00920177/document A Survey of Procedural Noise Functions on page 15 in the section “6.2. Analysis results”.

It doesn’t give a solution, but maybe an answer to what causes the problems. To avoid confusion I think it’s worth noticing that in this paper, the updated Perlin Noise is still called Perlin Noise and not Simplex Noise.

[…]

[…]

.

I am not a programmer of any sort :slight_smile:. So I am not completely sure that this can help since I don’t fully understand the meaning of this, but as far as my limited knowledge and understandig goes it seems that the problem lies deep within the roots of Perlin’s noise.

David

Just wanted to contribute my findings, I believe I’ve narrowed down the cause of this issue. I only see this issue when i’m using very high floating point values / uniforms to calculate the noise, both with the Noise TOP or with the TDSimplexNoise or TDPerlinNoise functions in GLSL. The screenshots attached below are using the Noise TOP’s Simplex 3D (GPU) type.

The very popular python references absTime.frame or absTime.seconds (if the project has been running for long enough) will eventually get into the range of the tens of thousands where you start to see artifacts, in the hundreds of thousands, you will see even more artifacting. It doesn’t matter where the values come from, It’s just the floating point precision on GPU and likely how it relates to Perlin/Simplex noise functions as mentioned by David / leroy_lights. I presume any gradated noise function eventually suffers from similar artifacts with high enough values.

You can limit any value with a modulo such as %10000 to keep the values under 10k, of course it will restart after it reaches 10k and you will see it jump, so you have to figure how long that part of your project needs to run or reset that sort of thing manually, e.g. with a Timer CHOP and use an output value from the Timer, etc.

absTime_simplexNoise.jpgabsTimeModulo_simplexNoise.jpg

2 Likes