Added FBM 3D & 4D and HybridMultiFractal 2D + cleaned code
this commit will change the scale of values produced by fbm2d. This will probably not happen again. As a consequence, fbm values will always be constrained between -1 and 1, but do not perfectly stick to that scale. There is no easy solution, if the user wants the best dynamic between -1 and 1, he should adjust manually the value by multiplying by a gain slightly superior to 1. Former-commit-id: ebdba9e9f4bbb972abe355c07ec9f8bce42329b9
This commit is contained in:
@@ -29,7 +29,7 @@ class NAZARA_API NzComplexNoiseBase
|
||||
float m_lacunarity;
|
||||
float m_hurst;
|
||||
float m_octaves;
|
||||
std::array<float, 30> exponent_array;
|
||||
std::array<float, 30> m_exponent_array;
|
||||
float m_sum;
|
||||
private:
|
||||
bool m_parametersModified;
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef FBM2DNOISE_HPP
|
||||
#define FBM2DNOISE_HPP
|
||||
#ifndef FBM2D_HPP
|
||||
#define FBM2D_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Noise/ComplexNoiseBase.hpp>
|
||||
@@ -25,4 +25,4 @@ class NAZARA_API NzFBM2D : public NzAbstract2DNoise, public NzComplexNoiseBase
|
||||
nzNoises m_noiseType;
|
||||
};
|
||||
|
||||
#endif // FBM2DNOISE_HPP
|
||||
#endif // FBM2D_HPP
|
||||
|
||||
29
include/Nazara/Noise/FBM3D.hpp
Normal file
29
include/Nazara/Noise/FBM3D.hpp
Normal file
@@ -0,0 +1,29 @@
|
||||
// Copyright (C) 2012 Rémi Bèges
|
||||
// This file is part of the "Nazara Engine".
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef FBM3D_HPP
|
||||
#define FBM3D_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Noise/ComplexNoiseBase.hpp>
|
||||
#include <Nazara/Noise/Abstract3DNoise.hpp>
|
||||
|
||||
class NAZARA_API NzFBM3D : public NzAbstract3DNoise, public NzComplexNoiseBase
|
||||
{
|
||||
public:
|
||||
NzFBM3D(nzNoises source, int seed);
|
||||
float GetValue(float x, float y, float z, float resolution);
|
||||
~NzFBM3D();
|
||||
protected:
|
||||
private:
|
||||
NzAbstract3DNoise* m_source;
|
||||
float m_value;
|
||||
float m_remainder;
|
||||
nzNoises m_noiseType;
|
||||
};
|
||||
|
||||
#endif // FBM3D_HPP
|
||||
|
||||
29
include/Nazara/Noise/FBM4D.hpp
Normal file
29
include/Nazara/Noise/FBM4D.hpp
Normal file
@@ -0,0 +1,29 @@
|
||||
// Copyright (C) 2012 Rémi Bèges
|
||||
// This file is part of the "Nazara Engine".
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef FBM4D_HPP
|
||||
#define FBM4D_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Noise/ComplexNoiseBase.hpp>
|
||||
#include <Nazara/Noise/Abstract4DNoise.hpp>
|
||||
|
||||
class NAZARA_API NzFBM4D : public NzAbstract4DNoise, public NzComplexNoiseBase
|
||||
{
|
||||
public:
|
||||
NzFBM4D(nzNoises source, int seed);
|
||||
float GetValue(float x, float y, float z, float w, float resolution);
|
||||
~NzFBM4D();
|
||||
protected:
|
||||
private:
|
||||
NzAbstract4DNoise* m_source;
|
||||
float m_value;
|
||||
float m_remainder;
|
||||
nzNoises m_noiseType;
|
||||
};
|
||||
|
||||
#endif // FBM4D_HPP
|
||||
|
||||
29
include/Nazara/Noise/HybridMultifractal2D.hpp
Normal file
29
include/Nazara/Noise/HybridMultifractal2D.hpp
Normal file
@@ -0,0 +1,29 @@
|
||||
// Copyright (C) 2012 Rémi Bèges
|
||||
// This file is part of the "Nazara Engine".
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef HYBRIDMULTIFRACTAL2D_HPP
|
||||
#define HYBRIDMULTIFRACTAL2D_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Noise/ComplexNoiseBase.hpp>
|
||||
#include <Nazara/Noise/Abstract2DNoise.hpp>
|
||||
|
||||
class NAZARA_API NzHybridMultiFractal2D : public NzAbstract2DNoise, public NzComplexNoiseBase
|
||||
{
|
||||
public:
|
||||
NzHybridMultiFractal2D(nzNoises source, int seed);
|
||||
float GetValue(float x, float y, float resolution);
|
||||
~NzHybridMultiFractal2D();
|
||||
protected:
|
||||
private:
|
||||
NzAbstract2DNoise* m_source;
|
||||
float m_value;
|
||||
float m_remainder;
|
||||
nzNoises m_noiseType;
|
||||
};
|
||||
|
||||
#endif // HYBRIDMULTIFRACTAL2D_HPP
|
||||
|
||||
Reference in New Issue
Block a user