Bonjour à tous !
J'essaie d'implémenter un algo qui utilise le "Transform Feedback" mais je m'en sors pas. Je dois faire un truc à l'envers ou pas avec les bons paramètres et du coup impossible de récupérer des données cohérentes...
Help !

Voila le code d'initialisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Data structure to store Eye space position and Screen Space position
struct ES_AND_SS {
float x,y,z;
int u,v;
};
 
// Buffer to store data
ES_AND_SS* tabData;
 
// Varying names to be recorded from vertex shader output
static const char* varyingNames[] = {
"ESPosition",
"ssCoord"
};
 
// Initializing data buffer
glTransformFeedbackVaryings(myProgramID,2,varyingNames,GL_INTERLEAVED_ATTRIBS);
 
glGenBuffers(1,&bufferID);
size = 1000;
 
// Allocate space
tabData = new ES_AND_SS[size];
glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER,size*sizeof(ES_AND_SS), NULL, GL_DYNAMIC_READ);
Au rendu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
myProgram->activate();
glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER,bufferID);
glBeginTransformFeedback(GL_POINTS);
 
//... draw some vertices ...
 
myProgram->deactivate();
glEndTransformFeedback();
 
// Reading back data
glGetBufferSubData(GL_TRANSFORM_FEEDBACK_BUFFER, 0, size*sizeof(ES_AND_SS), tabData);
 
// unbind
glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER,0);
Mais quand je vais lire dans tabData j'ai que des 0 ou des valeurs bidons approchant 0.
Merci pour voter aide !