Seite 1 von 1

OpenGL - rgb array darstellen

Verfasst: Sonntag 5. September 2010, 16:29
von Leonard
Hi

Ich habe ein Programm geschrieben, dass ein Bild erzeugt. Da Dieser Prozess einige Zeit dauert möchte ich den Entstehungsprozess darstellen. Die Pixel Daten des Bildes werden in ein 1D Array geschrieben der Länge (Breite * Höhe * 3) (3: für rgb). Am ende des Prozesses speichere ich Dieses Array als PPM Datei.

Ich Möchte jetzt alle paar Sekunden diesen Array mit OpenGL darstellen (bzw rendern). Ich hab auch schon ne Menge darüber gelesen und mit "glDrawPixels" experimentiert - bis jetzt aber ohne Erfolg.

Folgendes Script ist mein Test. Kann mir jemand helfen dieses zum laufen zu bekommen?

Code: Alles auswählen

from OpenGL.GLUT import *
import array

breit, hoch = 100,100
#erzeuge Array
a = array.array("B", [0] * (breit * hoch * 3))
#Array mit ein Farbe versehen
for i in range(len(a)):
    a[i] = i % 255

def main():
    global a
    glLoadIdentity();
    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

    glDrawPixels(breit, hoch, GL_RGB, GL_INT, a)
    
    glutSwapBuffers()
    

glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
glutInitWindowSize(breit ,hoch)
glutInitWindowPosition(0, 0)
window = glutCreateWindow("Test")
glutDisplayFunc(main)
glutIdleFunc(main)
glutMainLoop()