glGetPixels Funktioniert irgendwie nicht
-
Hi leute habe da n problem mit dem Auslesen der Pixel Farbwerte.
Ich bekomme immer nur = von glReadPixels zurück.Hier Initialiesier ich OpenGl
//Tiefenpuffer säubern Gl.glClearDepth(1.0); Gl.glClearColor(0,0,0,0); //Tiefenpuffer einstellen Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glDepthMask(Gl.GL_TRUE); Gl.glViewport(0, 0, widht, height); // Perspektive einstellen Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(45.0f, (double)widht / (double)height, 0.1f, 1000.0f); Gl.glEnable(Gl.GL_CULL_FACE); Gl.glCullFace(Gl.GL_BACK);
Das hier ist die Renderschleife
render wird von aussen durch ein Mausklick auf false gesetzt.//Zeitmessung starten Stopuhr = DateTime.Now; #region Scenenausrichtung //Fenster für nächstes Bild löschen Gl.glClear(Gl.GL_DEPTH_BUFFER_BIT | Gl.GL_COLOR_BUFFER_BIT); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); //Diese Einstellugn wird genutzt um die Scene zu Rotieren Gl.glTranslated(xpos, ypos, zpos); Gl.glRotated(xrot, 1, 0, 0); Gl.glRotated(yrot, 0, 1, 0); Gl.glRotated(zrot, 0, 0, 1); #endregion Gl.glInitNames(); Gl.glPushName(0); Gl.glColor3ub(100, 0, 0); Gl.glBegin(Gl.GL_TRIANGLES); Gl.glVertex3d(-0.5, 1, 0); Gl.glVertex3d(0.5, 1, 0); Gl.glVertex3d(0, 2, 0); Gl.glEnd(); Gl.glColor3ub(200, 0, 0); Gl.glBegin(Gl.GL_QUADS); Gl.glVertex3f(-1, 0, 0); Gl.glVertex3f(-2, 0, 0); Gl.glVertex3f(-2, -1, 0); Gl.glVertex3f(-1, -1, 0); Gl.glEnd(); Gl.glColor3ub(150, 0, 0); Gl.glBegin(Gl.GL_TRIANGLES); Gl.glVertex3d(2, 0, 0); Gl.glVertex3d(1, 0, 0); Gl.glVertex3d(1.5, -1, 0); Gl.glEnd(); Gl.glBegin(Gl.GL_TRIANGLES); Gl.glVertex3d(1, -0.65, 0); Gl.glVertex3d(2, -0.65, 0); Gl.glVertex3d(1.5, 0.35, 0); Gl.glEnd(); //Frames Ermitteln #region try { Gemessenezeit = DateTime.Now - Stopuhr; frames = 1000 / (uint)Gemessenezeit.TotalMilliseconds; } catch { frames = 1000; } #endregion if (render == false) { render = true; byte zuletzt=0; Gl.glReadBuffer(Gl.GL_FRONT); Gl.glReadPixels(y,600- x, 1, 1, Gl.GL_UNSIGNED_BYTE,Gl.GL_RED, zuletzt); MessageBox.Show(zuletzt.ToString()); }
Kann mir jemand helfen?