Hi !
I’m trying to implement an algorithm using Transform Feedback feature but I’m having trouble reading the data back to process them. I may do something wrong but I really can’t figure out what. Please help !
Here is the initialization stuff:
// 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);
// When rendering:
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);
But when parsing my data buffer I just get crappy values.
What the hell am I doing wrong ?
Thanks for your answers