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:
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
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);
Mais quand je vais lire dans tabData j'ai que des 0 ou des valeurs bidons approchant 0.
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);![]()
![]()
Merci pour voter aide !
Partager