#include <PlanetTexturer.h>
Inheritance diagram for PlanetTexturer:
Public Member Functions | |
PlanetTexturer () | |
Contructeur. | |
~PlanetTexturer () | |
Destructeur. | |
void | createReferencePlanet () |
Fonction de reference directement issue du tutorial. Génère une texture de base de type planete. | |
void | createTexture (String BitmapName) |
Creation d'une texture de planete avec un découpage en continents simple. | |
void | setLightColor (Ogre::ColourValue couleur) |
Définition de la couleur de la lumière qui sera appliquée sur la planete (cad la lumière du soleil). | |
void | setPlanetType (int PlanetType) |
Définition de la couleur de la lumière qui sera appliquée sur la planete (cad la lumière du soleil). | |
void | setSeed (int seed) |
Protected Member Functions | |
void | buildPlanarTexture (const module::Module &noiseModule, bool seamless, NoiseMap &noiseMap) |
A partir d'un noise-module, cette fonction va remplir une noise-map plane. | |
void | buildSphericalTexture (const module::Module &noiseModule, NoiseMap &noiseMap) |
A partir d'un noise-module, cette fonction va remplir une noise-map spherique. | |
virtual void | renderColors (RendererImage &renderer, int PlanetType) |
void | renderLight (RendererImage &renderer) |
On applique une lumière artificielle sur la map. | |
void | renderLandscapeLight (RendererImage &renderer) |
On applique une lumière artificielle sur un paysage. | |
bool | openGradientFile (String SVGfilename) |
Lit un fichier gradient au format SVG (Vector Scalable Graphics). | |
bool | addGradient (RendererImage &renderer) |
Lit un gradient du fichier SVG (Vector Scalable Graphics). | |
void | closeGradientFile () |
On libere le parser XML du fichier SVG. | |
ColourValue | parseRGB1 (String colorString) |
Parse une couleur au format rrggbb. | |
ColourValue | parseRGB2 (String colorString) |
Parse une couleur au format rgb(R,G,B). | |
void | generateColormap (const NoiseMap &noiseMap, String filename, int PlanetType=0, bool light=true) |
A partir de la noise-map, on génère un fichier BMP qui pourra être utilisé comme texture. | |
void | generateSpecMap (const NoiseMap &noiseMap, String filename) |
Generation de la 'specularity map'. | |
void | generateBumpMap (const NoiseMap &noiseMap, String filename) |
Generation de la 'Bump map'. | |
void | generateNormalMap (NoiseMap &noiseMap, String filename) |
Generation de la 'Normal map'. | |
void | generateRawMap (NoiseMap &noiseMap, String filename) |
Generation de la 'Raw map'. | |
void | generateTerragenMap (NoiseMap &noiseMap, String filename) |
Generate a Terragen file (elevation grid). | |
void | CheckParameters () |
On vérifie que tous les paramètres sont bien dans les limites prévues. | |
void | scalePlanetInMeters (NoiseMap &noiseMap, Real minAltitude, Real maxAltitude, Real Circonference) |
Transforme la noiseMap en metres (au lieu de -1..+1). | |
void | flattenSea (NoiseMap &noiseMap) |
Applatit le fond de la mer. | |
Real | altitude (Real x) |
Transforme un niveau (-1..+1) en tenant compte du niveau de la mer. | |
Real | toHauteur (Real x) |
Transforme un offset SVG en tenant compte du niveau de la mer. | |
Ogre::uint8 | dec (char C) |
Convertit un caractere ascii hexa en decimal. | |
Protected Attributes | |
int | GRID_WIDTH |
Width of elevation grid, in points. | |
int | GRID_HEIGHT |
Height of elevation grid, in points. | |
double | mSeaLevel |
Specifies the planet's sea level. [-1..+1]. | |
int | mSeed |
Planet seed. | |
double | mResInMeters |
Resoltion of the map in meters (not used for planet maps). | |
Color | mLightColor |
Color of the sun light. | |
int | mPlanetType |
Type de la planete (temperée, rocheuse, etc). | |
XMLParser_T * | mSVGfile |
Fichier de description des couleurs pour texturer une planete. | |
int | mIndex |
Index des elements stop dans le fichier SVG. |
Ce générateur crée une texture pour la planete, selon un certain nombre de paramètres, tels que l'aridité, la température, etc. On utilise la librairie 'libnoise' dans une version modifiée par David. Chaque texture est différente, mais une même 'seed' fournit la même texture.
|
Contructeur.
|
|
Destructeur.
|
|
Lit un gradient du fichier SVG (Vector Scalable Graphics). TODO: controler que l'on n'a pas dejà deja un gradient à cette hauteur: sinon plantage! |
|
Transforme un niveau (-1..+1) en tenant compte du niveau de la mer. Convertit une Altitude (-1..+1) en hauteur (-1..+1). si x = 0, on renvoie SEA_LEVEL si x est dans [-1..0], on renvoie une valeur dans [-1..SEA_LEVEL] si x est dans [0..+1], on renvoie une valeur dans [SEA_LEVEL..+1]
|
|
A partir d'un noise-module, cette fonction va remplir une noise-map plane. Il faut avoir GRID_WIDTH = GRID_HEIGHT, pour obtenir une texture carrée. |
|
A partir d'un noise-module, cette fonction va remplir une noise-map spherique. Il faut avoir GRID_WIDTH = GRID_HEIGHT *2. |
|
On vérifie que tous les paramètres sont bien dans les limites prévues.
Reimplemented in PlanetTexturer_Complex. |
|
On libere le parser XML du fichier SVG.
|
|
Fonction de reference directement issue du tutorial. Génère une texture de base de type planete.
|
|
Creation d'une texture de planete avec un découpage en continents simple.
Reimplemented in PlanetTexturer_Complex, PlanetTexturer_Gas, PlanetTexturer_Granit, PlanetTexturer_Ice, PlanetTexturer_Rock, and PlanetTexturer_Venusian. |
|
Convertit un caractere ascii hexa en decimal.
|
|
Applatit le fond de la mer.
|
|
Generation de la 'Bump map'. Cette Map retranscrit directement l'élévation de la planete. Les zones basses ont en noir, et les zones élevées en blanc. |
|
A partir de la noise-map, on génère un fichier BMP qui pourra être utilisé comme texture.
|
|
Generation de la 'Normal map'. Cette Map retranscrit le relief de la planete, sous forme de vecteurs RGB. Il faut utiliser cette normal map avec une colormap (sans lumière artificielle), et un moteur3D (tel que Ogre), pour obtenir des lumières réalistes en temps réel de la planète. Le relief est représenté par les vecteur "normal" en chaque point de la map. R = composante X du vecteur. (0..255) G = composante Y du vecteur. (0..255) B = composante Z du vecteur. (0..255) |
|
Generation de la 'Raw map'. A raw terrain (*.raw) file has its elevation points measured in meters. This terrain file contains 16-bit signed big-endian values, in row-major order, ordered south to north. |
|
Generation de la 'specularity map'. Cette Map définit la brillance de la planete. Le noir indique une zone mate, sans reflets. Le blanc indique une zone très brillante. Les mers sont les plus brillantes, ainsi que les zones élevées en raison de la neige.
|
|
Generate a Terragen file (elevation grid). A Terragen terrain (*.ter) file that has its elevation points measured in meters. This file is generated only if the grid of elevation points has a spatial resolution <= 240 meters. The grid of elevation points can have a maximum horizontal resolution of 0.25 arcseconds (~7.5 meters.) A higher-resolution grid will cause the terrain to appear blurry. |
|
Lit un fichier gradient au format SVG (Vector Scalable Graphics).
|
|
Parse une couleur au format rrggbb.
|
|
Parse une couleur au format rgb(R,G,B).
|
|
Définit la palette de couleurs qui sera utilisée pour la planete.
Reimplemented in PlanetTexturer_Gas, and PlanetTexturer_Venusian. |
|
On applique une lumière artificielle sur un paysage.
|
|
On applique une lumière artificielle sur la map.
|
|
Transforme la noiseMap en metres (au lieu de -1..+1).
On calcule le niveau de la mer (en metres) On calcule la résolution de la Map (en metres). |
|
Définition de la couleur de la lumière qui sera appliquée sur la planete (cad la lumière du soleil).
|
|
Définition de la couleur de la lumière qui sera appliquée sur la planete (cad la lumière du soleil).
|
|
Initialise le moteur aléatoire, pour le relief de la planete.
|
|
Transforme un offset SVG en tenant compte du niveau de la mer. Convertit un offset (0..+1) en hauteur (-1..+1). si x = 0.5, on renvoie SEA_LEVEL si x est dans [0.0...0.5], on renvoie une valeur dans [-1..SEA_LEVEL] si x est dans [0.5...1.0], on renvoie une valeur dans [SEA_LEVEL..+1]
|
|
Height of elevation grid, in points.
|
|
Width of elevation grid, in points.
|
|
Index des elements stop dans le fichier SVG.
|
|
Color of the sun light.
|
|
Type de la planete (temperée, rocheuse, etc).
|
|
Resoltion of the map in meters (not used for planet maps).
|
|
Specifies the planet's sea level. [-1..+1].
|
|
Planet seed.
|
|
Fichier de description des couleurs pour texturer une planete.
|