representation d'une cubemap / envmap.
More...
#include <envmap.h>
|
| Envmap (const int size) |
|
| Envmap (const Image &image) |
| extrait les 6 faces d'une image. More...
|
|
| Envmap (const std::array< Image, 6 > &faces) |
| utilise les 6 faces. More...
|
|
int | width () const |
| largeur d'une face. More...
|
|
int | height () const |
| hauteur d'une face. More...
|
|
bool | empty () const |
| renvoie vrai si la cubemap est initialisee. More...
|
|
void | linear (const float gamma=2.2f) |
| applique une correction gamma inverse aux donnees de la cubemap. More...
|
|
void | gamma (const float gamma=2.2f) |
| applique une correction gamma aux donnees de la cubemap. More...
|
|
Image | cross () const |
| renvoie une image contenant les 6 faces de la cubemap. More...
|
|
std::array< Image, 6 > | faces () const |
| renvoie les 6 faces de la cubemap. More...
|
|
Color & | operator() (const int face, const int x, const int y) |
|
Color | operator() (const int face, const int x, const int y) const |
|
Color | texture (const Vector &d) const |
| renvoie la couleur de la cubemap dans la direction d, utilise les memes conventions qu'openGL / Renderman. More...
|
|
Vector | envmap_pixel (const Vector &d) |
|
Vector | envmap_texel (const Vector &d) |
|
Vector | envmap_pixel_direction (const Vector &d) |
|
Vector | envmap_texel_direction (const Vector &d) |
|
Vector | envmap_texel_direction (const int face, const float s, const float t) |
|
|
std::array< Image, 6 > | m_faces |
|
int | m_width |
|
representation d'une cubemap / envmap.
Definition at line 12 of file envmap.h.
◆ Envmap() [1/2]
Envmap::Envmap |
( |
const Image & |
image | ) |
|
|
inline |
extrait les 6 faces d'une image.
Definition at line 23 of file envmap.h.
23 : m_faces(), m_width(0)
25 int w= image.
width() / 4;
33 struct {
int x, y; }
faces[]= {
42 for(
int i= 0; i < 6; i++)
int height() const
renvoie la hauteur de l'image.
int width() const
renvoie la largeur de l'image.
Image flipY(const Image &image)
retourne l'image
Image flipX(const Image &image)
retourne l'image
Image copy(const Image &image, const int xmin, const int ymin, const int width, const int height)
renvoie un bloc de l'image
std::array< Image, 6 > faces() const
renvoie les 6 faces de la cubemap.
◆ Envmap() [2/2]
Envmap::Envmap |
( |
const std::array< Image, 6 > & |
faces | ) |
|
|
inline |
utilise les 6 faces.
Definition at line 47 of file envmap.h.
49 for(
int i= 0; i < 6; i++)
52 m_width= m_faces[0].width();
53 for(
int i= 0; i < 6; i++)
54 if(m_width != m_faces[i].
width() || m_width != m_faces[i].
height())
int height() const
hauteur d'une face.
int width() const
largeur d'une face.
◆ width()
int Envmap::width |
( |
| ) |
const |
|
inline |
largeur d'une face.
Definition at line 58 of file envmap.h.
◆ height()
int Envmap::height |
( |
| ) |
const |
|
inline |
hauteur d'une face.
Definition at line 59 of file envmap.h.
◆ empty()
bool Envmap::empty |
( |
| ) |
const |
|
inline |
renvoie vrai si la cubemap est initialisee.
Definition at line 60 of file envmap.h.
◆ linear()
void Envmap::linear |
( |
const float |
gamma = 2.2f | ) |
|
|
inline |
applique une correction gamma inverse aux donnees de la cubemap.
Definition at line 63 of file envmap.h.
65 for(
int i= 0; i < 6; i++)
66 for(
int p= 0; p < int(m_faces[i].size()); p++)
68 Color pixel= m_faces[i](p);
69 m_faces[i](p)=
Color(std::pow(pixel.r,
gamma), std::pow(pixel.g,
gamma), std::pow(pixel.b,
gamma));
representation d'une couleur (rgba) transparente ou opaque.
void gamma(const float gamma=2.2f)
applique une correction gamma aux donnees de la cubemap.
◆ gamma()
void Envmap::gamma |
( |
const float |
gamma = 2.2f | ) |
|
|
inline |
applique une correction gamma aux donnees de la cubemap.
Definition at line 74 of file envmap.h.
76 for(
int i= 0; i < 6; i++)
77 for(
int p= 0; p < int(m_faces[i].size()); p++)
79 Color pixel= m_faces[i](p);
80 m_faces[i](p)=
Color(std::pow(pixel.r, 1 /
gamma), std::pow(pixel.g, 1 /
gamma), std::pow(pixel.b, 1 /
gamma));
◆ cross()
Image Envmap::cross |
( |
| ) |
const |
|
inline |
renvoie une image contenant les 6 faces de la cubemap.
Definition at line 85 of file envmap.h.
91 struct {
int x, y; }
faces[]= {
102 for(
int i= 0; i < 6; i++)
108 for(
int y= 0; y <
height(); y++)
109 for(
int x= 0; x <
width(); x++)
110 image(xmin+x, ymin+y)= face(x, y);
representation d'une image.
bool empty() const
renvoie vrai si la cubemap est initialisee.
◆ faces()
std::array<Image, 6> Envmap::faces |
( |
| ) |
const |
|
inline |
renvoie les 6 faces de la cubemap.
Definition at line 117 of file envmap.h.
120 return std::array<Image, 6>();
122 std::array<Image, 6>
faces;
123 for(
int i= 0; i < 6; i++)
◆ texture()
renvoie la couleur de la cubemap dans la direction d, utilise les memes conventions qu'openGL / Renderman.
Definition at line 140 of file envmap.h.
147 Vector m=
Vector(std::abs(d.x), std::abs(d.y), std::abs(d.z));
148 if(m.x > m.y && m.x > m.z)
198 float s= (sm +1) / 2;
199 float t= (tm +1) / 2;
200 return m_faces[face].texture(s, t);
representation d'un vecteur 3d.
The documentation for this struct was generated from the following file: