Implémentation transform feedback
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:
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:
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 !