Auburn / FastNoiseLite

Fast Portable Noise Library - C# C++ C Java HLSL GLSL JavaScript Rust Go
http://auburn.github.io/FastNoiseLite/
MIT License
2.79k stars 327 forks source link

[SUGGESTION] 64-bit seeds #92

Open ichordev opened 2 years ago

ichordev commented 2 years ago

I'm working on a project which would greatly benefit from natively-supported 64-bit seeds — perhaps using a similar mechanism to switching between float/double for input. The only workaround I can think of is generating all my noise twice with half of the seed at once, which would halve performance.

Auburn commented 2 years ago

Out of interest what do you need 64bit seeds for? Adding support for them would not be that easy and incur a performance penalty

ichordev commented 2 years ago

For variety in procedural world generation. The past has shown that 2^32-1 combinations isn’t enough variety, unfortunately!

Auburn commented 2 years ago

I'm sure you'd have more than 1 noise type in use when generating a world, simply split the 64 bit seed you have into 2 or more 32 bit seeds for the various noise instances you are using. You should get more variety from your 64bit seed doing it this way as well

ichordev commented 2 years ago

I'm sure you'd have more than 1 noise type in use when generating a world, simply split the 64 bit seed you have into 2 or more 32 bit seeds for the various noise instances you are using. You should get more variety from your 64bit seed doing it this way as well

I'm currently doing that. It works, but ideally I'd prefer to have almost everything be unique to each seed. Thanks for the suggestion still! :)