Razaekel / noise-rs

Procedural noise generation library for Rust.
Apache License 2.0
833 stars 117 forks source link

Definition of output ranges. #206

Open cheako opened 5 years ago

cheako commented 5 years ago

https://docs.rs/noise/0.5.1/noise/struct.OpenSimplex.html does not specify it's output range, I only knew to look when I was getting negative numbers. Looks like it's -1 to 1, not sure if it's inclusive or not. These are the kinds of things that:

  1. Should be consistent about, get() for all NoiseFns should produce the same rage, I suggest -1 to 1 inclusive or 0(exclusive) to 1(inclusive).
  2. Should be well documented, even if there are no notations about compliance it should be explicitly stated in the docs. This assumes some implementations won't, for example, be able to get all the way to 1.
vallentin commented 5 years ago

Testing, I'm getting the range [-0.5; 0.5]. I'd also like if this information was added to the documentation.

Additionally, it would be great if there was a Range trait. That all the noise algorithms implemented. Even better if it is also implemented for the various noise functions. Such that Min, Power, etc. would correctly scale the min() and max() relative to their operation and the min/max of the source(s).

cheako commented 5 years ago

Affirmative, having undefined behavior leads to different algorithms being undefined in different and often incompatible ways.

jrmoserbaltimore commented 1 month ago

This is exactly why I'm here, I have no idea what the output range is supposed to be.