Ik wil pixel operaties uitvoeren op een beeld in openGL (bepaalde pixels zwart maken meer bepaald). Met glReadPixels() kan men een beeld opslaan als een array als volgt:
Hierna pas ik fColorBuffer aan en dan wil ik deze array gebruiken om de huidige color buffer weer te overschrijven. Mijn vraag is nu, gaat dit in openGL? Het enige wat ik kan doen met deze array is gebruiken als een 2D image die ik ergens in mijn scene kan plakken. Dit doe ik dan ook. Ik plak als het ware deze image over mijn hele scene heen. Maar ik vind dit een beetje omslachtig:
Iemand een idee?
Informatie over de kleurbuffer en over pixel operaties.
C++:
1
2
| float *fColorBuffer = new float[m_iScreenWidth*m_iScreenHeight*3]; glReadPixels(0, 0, m_iScreenWidth, m_iScreenHeight, GL_RGB, GL_FLOAT, fColorBuffer); |
Hierna pas ik fColorBuffer aan en dan wil ik deze array gebruiken om de huidige color buffer weer te overschrijven. Mijn vraag is nu, gaat dit in openGL? Het enige wat ik kan doen met deze array is gebruiken als een 2D image die ik ergens in mijn scene kan plakken. Dit doe ik dan ook. Ik plak als het ware deze image over mijn hele scene heen. Maar ik vind dit een beetje omslachtig:
C++:
1
2
| glRasterPos3f(wx,wy,wz); glDrawPixels(m_iScreenWidth, m_iScreenHeight, GL_RGB, GL_FLOAT, fColorBuffer); |
Iemand een idee?
Informatie over de kleurbuffer en over pixel operaties.