Maintenant que le FBO est créé, nous pouvons passer à la création du second couple de matrices, celles qui seront dédiées à la première passe. Ces matrices porteront quasiment le même nom que celles que nous avons l'habitude de manipuler :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
void SceneOpenGL::bouclePrincipale(){
unsigned int frameRate (1000 / 50);
Uint32 debutBoucle(0), finBoucle(0), tempsEcoule(0);
FrameBuffer frameBuffer(512, 512);
frameBuffer.charger();
mat4 projectionFBO, modelviewFBO;
....
}
|
L'initialisation de ces matrices sera elle-aussi quasiment identique. La seule chose qui va différer dans cette initialisation c'est le rapport des pixels pour la matrice de projection (le ratio).
De base, celui-ci est relatif à la taille de votre fenêtre, tout dépend de ce que vous avez mis avant. Cependant le rendu de la première passe s'effectue dans le FBO, le rapport doit donc est relatif à la taille de ce dernier. Vu que nous avons spécifié une taille de 512x512 pixels, le rapport sera donc de 512 / 512. Nous utiliserons les getters sur la largeur et la hauteur du FBO pour avoir accès à ces valeurs, ce qui sera utile en cas de changement de ces dimensions :
1
2
3
4
5
6
7
|
mat4 projectionFBO;
mat4 modelviewFBO;
projectionFBO = perspective(70.0, (double)frameBuffer.getLargeur() / frameBuffer.getHauteur(), 1.0, 100.0);
modelviewFBO = mat4(1.0);
|
Si vous vous posez la question, sachez que l'autre couple de matrices n'a pas besoin d'être modifié, elles sont très bien comme ça.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
void SceneOpenGL::bouclePrincipale(){
unsigned int frameRate (1000 / 50);
Uint32 debutBoucle(0), finBoucle(0), tempsEcoule(0);
FrameBuffer frameBuffer(512, 512);
frameBuffer.charger();
mat4 projectionFBO;
mat4 modelviewFBO;
projectionFBO = perspective(70.0, (double)frameBuffer.getLargeur() / frameBuffer.getHauteur(), 1.0, 100.0);
modelviewFBO = mat4(1.0);
mat4 projection;
mat4 modelview;
projection = perspective(70.0, (double) m_largeurFenetre / m_hauteurFenetre, 1.0, 100.0);
modelview = mat4(1.0);
....
}
|
|