OpenGL - rgb array darstellen

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Leonard
User
Beiträge: 15
Registriert: Freitag 26. Dezember 2008, 15:01

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()
Antworten