Commit f91956e4 authored by paps's avatar paps

--no commit message

--no commit message
parent d9e76b32
/* @brief OBJET : represente la structure acceleratrice simple (une simple boite)atrice
* @file LrBinderRegularGrid.h
/**
* @brief OBJET : represente la structure acceleratrice simple (une simple boite)
* @file LrBindeRegularGrid.h
* @date Lundi 10 Mars 2008
* @note
* @author Josselin Francois
......@@ -8,7 +9,7 @@
* @author Hervé Souchaud
* @author Emeric Verschuur
*
* Ce fichier contient la classe qui gère la creation d'une structure acceleratrice simple pour la gestion des objets 3D
* Ce fichier contient la classe qui gère la creation d'une structure acceleratrice de type Grille régulière
*/
#if defined HAVE_CONFIG_H
......@@ -27,13 +28,14 @@
using namespace std;
// ############################################################################
LrBinderRegularGrid::LrBinderRegularGrid()
:
LrBinder()
{
//initBinder();
}
// ############################################################################
LrBinderRegularGrid::LrBinderRegularGrid(const LrBinderRegularGrid & source)
:
LrBinder(source),
......@@ -46,7 +48,7 @@ m_tabVoxel(source.m_tabVoxel)
{
//initBinder();
}
// ############################################################################
LrBinderRegularGrid::LrBinderRegularGrid(const LrEntityList &entities, int nbVoxelX, int nbVoxelY, int nbVoxelZ)
:
LrBinder(entities),
......@@ -66,13 +68,12 @@ m_tabVoxel(nbVoxelX*nbVoxelY*nbVoxelZ)
//initBinder();
}
// ############################################################################
LrBinderRegularGrid::~LrBinderRegularGrid()
{
}
// ############################################################################
void LrBinderRegularGrid::initBinder()
{
......@@ -101,13 +102,25 @@ void LrBinderRegularGrid::initBinder()
}
<<<<<<< .mine
min.x -= 4 *EPSILON;
min.y -= 4 *EPSILON;
min.z -= 4 *EPSILON;
=======
min.x -= 2 * EPSILON;
min.y -= 2 * EPSILON;
min.z -= 2 * EPSILON;
>>>>>>> .r533
<<<<<<< .mine
max.x += 4 *EPSILON;
max.y += 4 *EPSILON;
max.z += 4 *EPSILON;
=======
max.x += 2 * EPSILON;
max.y += 2 * EPSILON;
max.z += 2 * EPSILON;
>>>>>>> .r533
m_lenBinder = LrVector(min,max);
......@@ -154,7 +167,7 @@ void LrBinderRegularGrid::initBinder()
}
}
// ############################################################################
bool LrBinderRegularGrid::getIntersection(const LrRay &ray, LrHit *hit, Real minbound, Real maxbound) const
{
Real lminbound, lmaxbound;
......@@ -515,3 +528,4 @@ bool LrBinderRegularGrid::getIntersection(const LrRay &ray, LrHit *hit, Real min
return false;
}
// ############################################################################
\ No newline at end of file
/**
* @brief PertNormal : les perturbations de normal d'une optic.
* @brief Classe gere le bruit de perlin
* @file LrPerlin.cpp
* @date Jeudi 14 Fevrier 2008
* @date Jeudi 1 mai 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
......@@ -39,24 +39,24 @@ static int permutation[] = { 151,160,137,91,90,15,
138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180
};
/*****************************************************************************/
// ############################################################################
LrPerlin::LrPerlin()
{
for (int i=0; i < 256 ; i++) {
p[256+i] = p[i] = permutation[i];
}
}
/*****************************************************************************/
// ############################################################################
double LrPerlin::fade(double t)
{
return t * t * t * (t * (t * 6 - 15) + 10);
}
/*****************************************************************************/
// ############################################################################
double LrPerlin::lerp(double t, double a, double b)
{
return a + t * (b - a);
}
/*****************************************************************************/
// ############################################################################
double LrPerlin::grad(int hash, double x, double y, double z)
{
int h = hash & 15; // CONVERT LO 4 BITS OF HASH CODE
......@@ -64,12 +64,12 @@ double LrPerlin::grad(int hash, double x, double y, double z)
v = h<4||h==12||h==13 ? y : z;
return ((h&1) == 0 ? u : -u) + ((h&2) == 0 ? v : -v);
}
/*****************************************************************************/
// ############################################################################
Real LrPerlin::f_noise(Real x, Real y, Real z)
{
return (Real)d_noise((double)x, (double)y, (double)z);
}
/*****************************************************************************/
// ############################################################################
double LrPerlin::d_noise(double x, double y, double z)
{
int X = (int)floor(x) & 255, // FIND UNIT CUBE THAT
......@@ -93,7 +93,7 @@ double LrPerlin::d_noise(double x, double y, double z)
lerp(u, grad(p[AB+1], x, y-1, z-1),
grad(p[BB+1], x-1, y-1, z-1))));
}
/*****************************************************************************/
// ############################################################################
Real LrPerlin::lissage(Real x, Real y, Real z)
{
Real corners = ( f_noise(x-1, y-1, z-1)
......@@ -113,3 +113,4 @@ Real LrPerlin::lissage(Real x, Real y, Real z)
return corners + sides + center;
}
// ############################################################################
/**
* @brief Classe gere le bruit de perlin
* @file LrPerlin.h
* @date Jeudi 1 mai 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
* Classe permettant d'utiliser le bruit de perlin
* pour générer des textures ou des perturbations de normal
*/
#ifndef LRPERLIN_H
#define LRPERLIN_H
......@@ -8,28 +22,28 @@ class LrPerlin
LrPerlin();
/** version de d_noise avec des float */
/** @brief version de d_noise avec des float */
Real f_noise(Real x, Real y, Real z);
Real lissage(Real x, Real y, Real z);
private :
/** matrice du bruit de perlin pour la texture en calcule */
/** @brief matrice du bruit de perlin pour la texture en calcule */
int p[512];
/** fonction pour le calcul du bruit
/** @brief fonction pour le calcul du bruit
* @see http://mrl.nyu.edu/~perlin */
double fade(double t);
/** fonction pour le calcul du bruit
/** @brief fonction pour le calcul du bruit
* @see http://mrl.nyu.edu/~perlin */
double lerp(double t, double a, double b);
/** fonction pour le calcul du gradien
/** @brief fonction pour le calcul du gradien
* @see http://mrl.nyu.edu/~perlin */
double grad(int hash, double x, double y, double z);
/** methode de Perlin créant un bruit dit cohérent sur l'image (ici le pixel traité par rapport a son voisinage)
* la methode renvoie une valeur représentant le niveau de bruit pour le point en traitement
* cette est appelée le coefficient de Perlin
* cette methode doit etre récupérée sur le site de Ken Perlin,
* il s'agit ici de la version C++ (la version de base est en JAVA)
/** @brief methode de Perlin créant un bruit dit cohérent sur l'image (ici le pixel traité par rapport a son voisinage)
* @brief la methode renvoie une valeur représentant le niveau de bruit pour le point en traitement
* @brief cette est appelée le coefficient de Perlin
* @brief cette methode doit etre récupérée sur le site de Ken Perlin,
* @brief il s'agit ici de la version C++ (la version de base est en JAVA)
* @param x : coordonnée x du point en traitement
* @param y ; coordonnée y du point en traitement
* @param z : coordonnée z du point en traitement
......
......@@ -10,7 +10,7 @@
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture
* Classe représentant une perturbation de couleur pour l'application d'une texture Damier
*
*/
......@@ -25,7 +25,7 @@
/*---------------------------------------------------------------------------*
* constructors and destructor *
*---------------------------------------------------------------------------*/
// ############################################################################
LrPertColor3DDamier::LrPertColor3DDamier()
: LrPertColorTextProc3D(),
dim(0.0)
......@@ -38,25 +38,27 @@ LrPertColor3DDamier::LrPertColor3DDamier(const LrPertColor3DDamier &source)
{
}
// ############################################################################
LrPertColor3DDamier::LrPertColor3DDamier(const LrColor &c1, const LrColor &c2, Real dimension)
: LrPertColorTextProc3D(c1, c2, c2),
dim(dimension)
{
}
// ############################################################################
LrPertColor3DDamier * LrPertColor3DDamier::clone() const
{
return new LrPertColor3DDamier(*this);
}
// ############################################################################
LrPertColor3DDamier::~LrPertColor3DDamier()
{
}
// ############################################################################
/*---------------------------------------------------------------------------*
* assignement operator(s) *
*---------------------------------------------------------------------------*/
// ############################################################################
LrPertColor3DDamier& LrPertColor3DDamier::operator = (const LrPertColor3DDamier &source)
{
if (this == &source)
......@@ -66,11 +68,11 @@ LrPertColor3DDamier& LrPertColor3DDamier::operator = (const LrPertColor3DDamier
dim = source.dim;
return *this;
}
// ############################################################################
/*---------------------------------------------------------------------------*
* comparison operator(s) *
*---------------------------------------------------------------------------*/
// ############################################################################
bool operator == (const LrPertColor3DDamier &lhs, const LrPertColor3DDamier &rhs)
{
return (LrPertColorTextProc3D&)lhs==(LrPertColorTextProc3D&)rhs && lhs.dim == rhs.dim ;
......@@ -108,10 +110,4 @@ LrColor LrPertColor3DDamier:: getColor(Real u, Real v, LrPoint &point) const
else if( (x_pair && z_pair) || (!x_pair && !z_pair) ) return C2;
else return C1;
}
// ############################################################################
......@@ -10,7 +10,7 @@
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture procedurale
* Classe représentant une perturbation de couleur pour l'application d'une texture Damier
*
*/
......@@ -19,24 +19,19 @@
#include "LrPertColorTextProc3D.h"
/**
* @brief PertColor : les perturbations de couleur d'une optic.
*
* Classe représentant une perturbation de couleur par une texture procedurale
*/
class LrPertColor3DDamier : public LrPertColorTextProc3D
{
public:
/** @brief constructeur par défaut */
LrPertColor3DDamier();
/**
* @brief LrPertColorTextProcDmaier copy constructor
* @brief LrPertColor3DDamier copy constructor
* @param source LrPertColorTextProcDmaier object reference.
*/
LrPertColor3DDamier(const LrPertColor3DDamier &source);
/**
* @brief LrPertColorTextProcDmaier personnal constructor
* @brief LrPertColor3DDamier personnal constructor
* @param c1 couleur 1 de la texture
* @param c2 couleur 2 de la texture
* @param c3 couleur 3 de la texture.
......@@ -46,13 +41,13 @@ class LrPertColor3DDamier : public LrPertColorTextProc3D
/**
* @brief LrPertColorTexture clone.
* @return LrPertColorTexture pointer object.
* @brief LrPertColor3DDamier clone.
* @return LrPertColor3DDamier pointer object.
*/
LrPertColor3DDamier * clone() const;
/**
* @brief LrPertColorTexture destructor
* @brief LrPertColor3DDamier destructor
*/
virtual ~LrPertColor3DDamier();
......@@ -74,6 +69,7 @@ class LrPertColor3DDamier : public LrPertColorTextProc3D
LrColor getColor(Real u, Real v, LrPoint &point) const;
protected :
/** @brief la dimension d'un damier */
Real dim;
};
......
/**
* @brief PertColor : les perturbations de couleur d'une optic.
* @brief PertColor : les perturbations de couleur d'une optic avec un bruit de perlin.
* @file LrPertColor3DPBasic.cpp
* @date Jeudi 14 Fevrier 2008
* @date Jeudi 1 mai Fevrier 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
......@@ -10,7 +10,7 @@
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture
* Classe représentant une perturbation de couleur pour l'application d'une texture de perlin basique
*
*/
......
/**
* @brief PertColor : les perturbations de couleur d'une optic.
* @brief PertColor : les perturbations de couleur d'une optic avec un bruit de perlin.
* @file LrPertColor3DPBasic.h
* @date Jeudi 14 Fevrier 2008
* @date Jeudi 1 mai Fevrier 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture procedurale
* Classe représentant une perturbation de couleur pour l'application d'une texture procédurale de perlin basique
*
*/
......@@ -19,25 +17,19 @@
#include "LrPertColorTxtPrc3DPerlin.h"
/**
* @brief PertColor : les perturbations de couleur d'une optic.
*
* Classe représentant une perturbation de couleur par une texture procedurale
*/
class LrPertColor3DPBasic : public LrPertColorTxtPrc3DPerlin
{
public:
/** @brief constructeur par défaut */
LrPertColor3DPBasic();
/**
* @brief LrPertColorTextProcDmaier copy constructor
* @param source LrPertColorTextProcDmaier object reference.
* @brief LrPertColor3DPBasic copy constructor
* @param source LrPertColor3DPBasic object reference.
*/
LrPertColor3DPBasic(const LrPertColor3DPBasic &source);
/**
* @brief LrPertColorTextProcDmaier personnal constructor
* @brief LrPertColor3DPBasic personnal constructor
* @param c1 couleur 1 de la texture
* @param c2 couleur 2 de la texture
* @param c3 couleur 3 de la texture.
......@@ -48,13 +40,13 @@ class LrPertColor3DPBasic : public LrPertColorTxtPrc3DPerlin
/**
* @brief LrPertColorTexture clone.
* @return LrPertColorTexture pointer object.
* @brief LrPertColor3DPBasic clone.
* @return LrPertColor3DPBasic pointer object.
*/
LrPertColor3DPBasic * clone() const;
/**
* @brief LrPertColorTexture destructor
* @brief LrPertColor3DPBasic destructor
*/
virtual ~LrPertColor3DPBasic();
......
/**
* @brief PertColor : les perturbations de couleur d'une optic.
* @brief les perturbations de couleur d'une optic avec un bruit de perlin.
* @file LrPertColor3DPBois.cpp
* @date Jeudi 14 Fevrier 2008
* @date Jeudi 1 mai 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
......@@ -10,7 +10,7 @@
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture
* Classe représentant une perturbation de couleur pour l'application d'une texture procédurale Bois
*
*/
......@@ -21,21 +21,23 @@
#include "LrPertColor3DPBois.h"
#include "LrVector.h"
// ############################################################################
/*---------------------------------------------------------------------------*
* constructors and destructor *
*---------------------------------------------------------------------------*/
// ############################################################################
LrPertColor3DPBois::LrPertColor3DPBois()
: LrPertColorTxtPrc3DPerlin()
{
}
// ############################################################################
LrPertColor3DPBois::LrPertColor3DPBois(const LrPertColor3DPBois &source)
: LrPertColorTxtPrc3DPerlin(source)
{
}
// ############################################################################
LrPertColor3DPBois::LrPertColor3DPBois(const LrColor &c1, const LrColor &c2, const LrColor &c3,
Real intensite, int level, Real multiplicateur,
int typeInterpol, bool lissage)
......@@ -43,19 +45,21 @@ LrPertColor3DPBois::LrPertColor3DPBois(const LrColor &c1, const LrColor &c2, con
{
}
// ############################################################################
LrPertColor3DPBois * LrPertColor3DPBois::clone() const
{
return new LrPertColor3DPBois(*this);
}
// ############################################################################
LrPertColor3DPBois::~LrPertColor3DPBois()
{
}
// ############################################################################
/*---------------------------------------------------------------------------*
* assignement operator(s) *
*---------------------------------------------------------------------------*/
// ############################################################################
LrPertColor3DPBois& LrPertColor3DPBois::operator = (const LrPertColor3DPBois &source)
{
if (this == &source)
......@@ -64,22 +68,22 @@ LrPertColor3DPBois& LrPertColor3DPBois::operator = (const LrPertColor3DPBois &so
LrPertColorTxtPrc3DPerlin::operator = (source);
return *this;
}
// ############################################################################
/*---------------------------------------------------------------------------*
* comparison operator(s) *
*---------------------------------------------------------------------------*/
// ############################################################################
bool operator == (const LrPertColor3DPBois &lhs, const LrPertColor3DPBois &rhs)
{
return (LrPertColorTxtPrc3DPerlin&)lhs==(LrPertColorTxtPrc3DPerlin&)rhs;
}
// ############################################################################
bool operator != (const LrPertColor3DPBois &lhs, const LrPertColor3DPBois &rhs)
{
return (! (lhs == rhs));
}
// ############################################################################
LrColor LrPertColor3DPBois::getColor(Real u, Real v, LrPoint &point) const
{
Real t, noise;
......@@ -106,11 +110,4 @@ LrColor LrPertColor3DPBois::getColor(Real u, Real v, LrPoint &point) const
if(v2 < noise && noise < v3) return interpolCos (C2, C3, noise);
return C3;*/
}
// ############################################################################
/**
* @brief PertColor : les perturbations de couleur d'une optic.
* @brief les perturbations de couleur d'une optic avec un bruit de perlin.
* @file LrPertColor3DPBois.h
* @date Jeudi 14 Fevrier 2008
* @date Jeudi 1 mai 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture procedurale
* Classe représentant une perturbation de couleur pour l'application d'une texture Bois
*
*/
......@@ -19,24 +17,19 @@
#include "LrPertColorTxtPrc3DPerlin.h"
/**
* @brief PertColor : les perturbations de couleur d'une optic.
*
* Classe représentant une perturbation de couleur par une texture procedurale
*/
class LrPertColor3DPBois : public LrPertColorTxtPrc3DPerlin
{
public:
/** @brief constructeur par défaut */
LrPertColor3DPBois();
/**
* @brief LrPertColorTextProcDmaier copy constructor
* @param source LrPertColorTextProcDmaier object reference.
* @brief LrPertColor3DPBois copy constructor
* @param source LrPertColor3DPBois object reference.
*/
LrPertColor3DPBois(const LrPertColor3DPBois &source);
/**
* @brief LrPertColorTextProcDmaier personnal constructor
* @brief LrPertColor3DPBois personnal constructor
* @param c1 couleur 1 de la texture
* @param c2 couleur 2 de la texture
* @param c3 couleur 3 de la texture.
......@@ -47,13 +40,13 @@ class LrPertColor3DPBois : public LrPertColorTxtPrc3DPerlin
/**
* @brief LrPertColorTexture clone.
* @return LrPertColorTexture pointer object.
* @brief LrPertColor3DPBois clone.
* @return LrPertColor3DPBois pointer object.
*/
LrPertColor3DPBois * clone() const;
/**
* @brief LrPertColorTexture destructor
* @brief LrPertColor3DPBois destructor
*/
virtual ~LrPertColor3DPBois();
......
......@@ -10,7 +10,7 @@
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture
* Classe représentant une perturbation de couleur pour l'application d'une texture procédurale marbre
*
*/
......@@ -90,21 +90,11 @@ LrColor LrPertColor3DPMarbre::getColor(Real u, Real v, LrPoint &point) const
else noise += fabsf((1.0f /f ) * (m_perlin.f_noise(f * tmp.x, f * tmp.y, f * tmp.z)));
}
noise = fabsf(sin(tmp.x + tmp.y + tmp.z +noise));
noise = fabsf(sin(tmp.x + tmp.y + tmp.z + noise));
noise *= m_intensity;
if(m_interpolation == COS) return interpolCos(C1, C2, noise);
else return interpolLinear(C1, C2, noise);
/*
Real v1 = 0.9999;
Real v2 = 0.99995;
Real v3 = 0.999998;
//calcul du coefficient de perlin
//Seuillage
if(noise < v1) return C1;
if(v1 < noise && noise < v2) return interpolBiLinear(C1,C2,noise, v1, v2);
if(v2 < noise && noise < v3) return interpolBiLinear(C2,C3,noise, v1, v2);
return C3;*/
}
/**
* @brief PertColor : les perturbations de couleur d'une optic.
* @brief les perturbations de couleur d'une optic avec un bruit de perlin.
* @file LrPertColor3DPMarbre.h
* @date Jeudi 14 Fevrier 2008
* @note
......@@ -10,7 +10,7 @@
* @author Emeric Verschuur
*
*
* Classe représentant une perturbation de couleur par une texture procedurale
* Classe représentant une perturbation de couleur pour l'application d'une texture procédurale marbre
*
*/
......@@ -19,22 +19,16 @@
#include "LrPertColorTxtPrc3DPerlin.h"
/**
* @brief PertColor : les perturbations de couleur d'une optic.
*
* Classe représentant une perturbation de couleur par une texture procedurale
*/
class LrPertColor3DPMarbre : public LrPertColorTxtPrc3DPerlin
{
public:
/** @brief constructeur par défaut */
LrPertColor3DPMarbre();
/**
* @brief LrPertColor3DPMarbre copy constructor
* @param source LrPertColorTextProcDmaier object reference.
*/
LrPertColor3DPMarbre(const LrPertColor3DPMarbre &source);
/**
* @brief LrPertColor3DPMarbre personnal constructor
* @param c1 couleur 1 de la texture
......@@ -53,7 +47,7 @@ class LrPertColor3DPMarbre : public LrPertColorTxtPrc3DPerlin
LrPertColor3DPMarbre * clone() const;
/**
* @brief LrPertColorTexture destructor
* @brief LrPertColor3DPMarbre destructor
*/
virtual ~LrPertColor3DPMarbre();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment