Skip to content
This repository has been archived by the owner on Apr 2, 2021. It is now read-only.

Feature request: 4D Noise #33

Open
tcdude opened this issue Oct 2, 2018 · 5 comments
Open

Feature request: 4D Noise #33

tcdude opened this issue Oct 2, 2018 · 5 comments

Comments

@tcdude
Copy link

tcdude commented Oct 2, 2018

I saw that your FastNoise library supports certain noise functions up to 4D. Would it be possible to implement 4D in FastNoiseSIMD?
4D implementations would help in creating seamless tiling 2D textures. (If more dimensions are possible it could even produce tiling in 3D)

@tcdude tcdude mentioned this issue Mar 1, 2019
@ninnghazad
Copy link

While i like the idea of 4d noise, using the 4d-donut-method to produce 2d seamless noise using this library would be very inefficient - to generate a 512x512 seamless tile you would need a 512x512x512x512 array of noise - that would be 256GB ...
The donut/hypertorus method only really makes sense when you generate only the values along the surface of the geometry, not the whole space containing the geometry.

@tcdude
Copy link
Author

tcdude commented Oct 23, 2019

@ninnghazad I know too little of the inner workings of the library, but if it supported 4D noise, I definitely wouldn't generate the entire space, but a beforehand computed set of coordinates. Maybe I'm overlooking something really obvious in how this library leverages SIMD, but if it were a possibility to generated a vastly reduced array of values, I believe this to be a beneficial feature.

@Auburn
Copy link
Owner

Auburn commented Oct 24, 2019

FastNoise SIMD already supports passing in an array of positions to generate at, the hardest bit of 4D noise would be making an SIMD friendly gradient function. It's something I'm looking into with my new version of FastNoise

@ninnghazad
Copy link

that sounds nice. so one could already produce seamless 2d tiles by providing a grid of coordinates mapped to a torus in euclidean 3d. that would show some distortion, but might be ok with proper scaling. when 4d noise with custom coordinates becomes available one could map 2d coords to a clifford torus in 4d and get distortion free tiles. gotta try this for seamless 1d 'strings' through 2d space.

@virtualritz
Copy link

You also need 4D when you have 3D solid noise on some 3D geometry and you want to animate/change this over time. In such cases you point sample the noise and don't request 'blocks' of noise of certain size that need to fit in memory.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants