Pipeline graphique
 Tout Structures de données Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Macros
ShaderBase.h
Aller à la documentation de ce fichier.
1 #ifndef _DEF_SHADERBASE
2 #define _DEF_SHADERBASE
3 
4 
5 #include "Camera.h"
6 #include "Light.h"
7 #include "Object.h"
8 #include "Material.h"
9 #include "utils.h"
10 #include <vector>
11 
12 
13 
14 class ShaderBase {
15 protected:
16 
17  unsigned int nlightLocal;
18  std::vector<Light_Global *> lights;
20 
23 
27 
29  bool debug;
30 
31 public:
32 
33  ShaderBase();
35  virtual ~ShaderBase() {}
36 
38  virtual void VertexShader(void *In, void *Out, void *Param, std::size_t Id0, std::size_t Id1) ;
39  virtual void PixelShader(void *In, void *Out, void *Param, std::size_t x, std::size_t y) ;
40 
42 
43  inline unsigned int getNbLight(){return lights.size();}
45  Light_Global* pointLight(unsigned int id){return lights.at(id); }
46  Light_Global& Light(unsigned int id);
47 
49 
50  void SetMaterial(Material &material);
51  void SetCamera(Camera *camera);
53  void AddLights(Light_Global * light);
54 
56  void Update();
57 
58 };
59 
60 #endif
Light_Global & Light(unsigned int id)
Retourne la structure associée à la iéme lampe de la scène.
Definition: ShaderBase.cpp:116
Light_Local * lightsLocal
Definition: ShaderBase.h:19
void SetMaterial(Material &material)
Fixe le matériau utilisé par le shader.
Definition: ShaderBase.cpp:130
Structure utilisée dans les shaders pour ne conserver que les lampes actives.
Definition: Light.h:31
Light_Global * pointLight(unsigned int id)
Definition: ShaderBase.h:45
Math::matrice44 world
Matrice de transformation globale.
Definition: ShaderBase.h:25
std::vector< Light_Global * > lights
Definition: ShaderBase.h:18
void Update()
ShaderBase::Update() Fonction permetant de metre a jour le shader pour prendre en compte de nouvelle ...
Definition: ShaderBase.cpp:75
Structure utilisée pour définir une lampe dans la scène.
Definition: Light.h:8
bool debug
Definition: ShaderBase.h:29
Definition: Camera.h:7
void SetWorldTransform(Math::matrice44 &mat)
Fixe la transformation globale de l'objet.
Definition: ShaderBase.cpp:146
Structure définissant un matériau tel que vu dans le cours (modèle de Phong).
Definition: Material.h:6
ShaderBase()
Destructeur.
Definition: ShaderBase.cpp:2
unsigned int getNbLight()
Definition: ShaderBase.h:43
void SetCamera(Camera *camera)
Fixe la définition de la caméra.
Definition: ShaderBase.cpp:138
unsigned int nlightLocal
Nombre de lampes actives.
Definition: ShaderBase.h:17
Camera * camera
Caméra.
Definition: ShaderBase.h:21
virtual void VertexShader(void *In, void *Out, void *Param, std::size_t Id0, std::size_t Id1)
ShaderBase::VertexShader(void *In, void *Out, void *Param, std::size_t x, std::size_t y) Fonction per...
Definition: ShaderBase.cpp:18
Math::vecteur3d poscamLocal
Definition: ShaderBase.h:22
void AddLights(Light_Global *light)
ShaderBase::AddLights(Light_Global * light) Fonction permetant d'ajouter une lampe a la scene...
Definition: ShaderBase.cpp:107
Math::vecteur3d & GetPosObservateur()
getter : valeur de pObs
Definition: Camera.cpp:118
virtual ~ShaderBase()
Definition: ShaderBase.h:35
Math::matrice44 total
Matrice de transformation globale.
Definition: ShaderBase.h:24
Math::vecteur3d & getPosCamera()
Definition: ShaderBase.h:44
structure pour les matrices 4x4
Definition: libMath.h:209
virtual void PixelShader(void *In, void *Out, void *Param, std::size_t x, std::size_t y)
ShaderBase::PixelShader(void *In, void *Out, void *Param, std::size_t x, std::size_t y) Fonction perm...
Definition: ShaderBase.cpp:52
Math::matrice44 inverseworld
Definition: ShaderBase.h:28
Material material
Matériau de l'objet.
Definition: ShaderBase.h:26