Timeline for How do you generate tileable Perlin noise?
Current License: CC BY-SA 3.0
8 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Apr 24, 2019 at 15:42 | comment | added | bobobobo |
@user10968 You cannot just modulo the noise lookup values (x,y) because you would get a discontinuity where your x value wraps by the modulus op back to 0 . So say noise(0.)=0.5 but noise(0.99999)=0.1 . If you fmod around 1. , you will take the call noise(1.)=0.1 say, to be a call to noise(0.)=0.5 . Now you have a jank in your noise function because of the jump between noise(0.9999)=0.1 and noise(0.)=0.5
|
|
Aug 22, 2018 at 17:21 | comment | added | DMGregory♦ | Note that a 2D slice through 3D (or 4D) noise has different properties than native 2D noise. It's less band-limited, which can make it harder to get the right balance between feature detail and aliasing artifacts. See this paper for a more thorough explanation | |
Feb 11, 2012 at 16:24 | comment | added | Nathan Reed | @idev I believe the way to fix the distortion is to use the 4D method in the top answer of this question. ;) | |
Feb 11, 2012 at 15:53 | comment | added | idev | @Nathan, do you know how to fix the distortion ? | |
Feb 11, 2012 at 15:52 | comment | added | idev | i noticed you actually dont want to use 0-1 values, but 0-0.9999... values! so you would use: x/width, y/height etc. otherwise the seams doesnt match (makes the opposite edges exact same pixels). also it looks like the PerlinNoise3D() function needs clamping for the result value too, or some pixel values overflow. | |
Feb 11, 2012 at 8:57 | comment | added | user10968 | you can really just modulo the position, but I love all the awesome/creative answers to this question. So many different ways to do the same thing. | |
Feb 10, 2012 at 21:51 | comment | added | Nathan Reed | It kinda works, but it looks like you're getting a bunch of distortion due to the curvature of the torus. | |
Feb 10, 2012 at 21:10 | history | answered | bobobobo | CC BY-SA 3.0 |