Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Seed of Andromeda fractal noise examples.
- /// Made by Benjamin Arnold.
- /// Use it for whatever you want.
- // Regular fractal noise. Range is -1 to 1
- float noise(vec3 position, int octaves, float frequency, float persistence) {
- float total = 0.0;
- float maxAmplitude = 0.0;
- float amplitude = 1.0;
- for (int i = 0; i < octaves; i++) {
- total += snoise(position * frequency) * amplitude;
- frequency *= 2.0;
- maxAmplitude += amplitude;
- amplitude *= persistence;
- }
- return total / maxAmplitude;
- }
- // Makes bubbly hills. range is 0 to 1
- float absNoise(vec3 position, int octaves, float frequency, float persistence) {
- float total = 0.0;
- float maxAmplitude = 0.0;
- float amplitude = 1.0;
- for (int i = 0; i < octaves; i++) {
- total += abs(snoise(position * frequency)) * amplitude;
- frequency *= 2.0;
- maxAmplitude += amplitude;
- amplitude *= persistence;
- }
- return total / maxAmplitude;
- }
- // Makes ridged mountains. Range is -1 to 1
- float ridgedNoise(vec3 position, int octaves, float frequency, float persistence) {
- float total = 0.0;
- float maxAmplitude = 0.0;
- float amplitude = 1.0;
- for (int i = 0; i < octaves; i++) {
- total += ((1.0 - abs(snoise(position * frequency))) * 2.0 - 1.0) * amplitude;
- frequency *= 2.0;
- maxAmplitude += amplitude;
- amplitude *= persistence;
- }
- return total / maxAmplitude;
- }
- // x^2 function. Range is 0 to 1
- float squaredNoise(vec3 position, int octaves, float frequency, float persistence) {
- float total = 0.0;
- float maxAmplitude = 0.0;
- float amplitude = 1.0;
- for (int i = 0; i < octaves; i++) {
- float tmp = snoise(position * frequency);
- total += tmp * tmp * amplitude;
- frequency *= 2.0;
- maxAmplitude += amplitude;
- amplitude *= persistence;
- }
- return total / maxAmplitude;
- }
- // x^3 function. Range is -1 to 1
- float cubedNoise(vec3 position, int octaves, float frequency, float persistence) {
- float total = 0.0;
- float maxAmplitude = 0.0;
- float amplitude = 1.0;
- for (int i = 0; i < octaves; i++) {
- float tmp = snoise(position * frequency);
- total += tmp * tmp * tmp * amplitude;
- frequency *= 2.0;
- maxAmplitude += amplitude;
- amplitude *= persistence;
- }
- return total / maxAmplitude;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement