ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
757
757
EMPFEHLEN
-
hi!
bin derzeit mit einem forschungsprojekt an der uni beschäftigt, bei dem ich in einem anderen programm 2 bilder rendere und diese dann in einem byte array zum open gl programm schicken um sie zu zeichnen.
das ganze benutzt stereo quad buffering , das ist aber nicht das problem.
kenne mich leider noch gar nicht mit opengl aus und habe im moment auch nicht die zeit mich groß einzuarbeiten.
habe also ein byte array vorliegen, in dem beide bilder hintereinander gespeichert sind in der form rgba je ein byte pro kanal.
das ganze möchte ich nun in open gl darstellen.
habe zu testzwecken erstmal ein array selbst erstellt und mit einem farbwert gefüllt. müsste ja das gleiche ergebnis bringen, erstmal ein einfarbiges bild.
hier der code:
erstmal das byte array erstellen -> elementgröße ist 512*512*4
Code :1 2 3 4 5 6
GLbyte *stream = new GLbyte[1048576]; for (int i = 0; i != 1048576; i++) { stream[i] = 100; }
mit dieser funktion erstell ich daraus eine textur:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
GLuint g_texPicture; GLuint *LoadTexture(GLbyte stream) { GLuint *texture; /* Erstelle eine OpenGL-Textur */ glGenTextures(1, texture); glBindTexture(GL_TEXTURE_2D, *texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, 3, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, &stream); return texture; } g_texPicture = LoadTexture(stream);
und zeichnen tu ich sie so:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
void displayFunc(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, 800, 600, 0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, g_texPicture); glBegin (GL_QUADS); glTexCoord2f (0, 0); glVertex2f (50, 50); glTexCoord2f (1, 0); glVertex2f (690, 50); glTexCoord2f (1, 1); glVertex2f (690, 530); glTexCoord2f (0, 1); glVertex2f (50, 530); glDisable (GL_TEXTURE_2D); glEnd (); glFlush (); countFrames(); glutSwapBuffers();
dennoch wird das quad immer weiß angezeigt, auch unabhängig davon ob ich die elemente im array anders belege oder die textur gar nicht zeichne(dann wirds ja eh weiß angezeigt)
hoffe ihr könnt mir helfen
gruß Sp3iky
Ähnliche Themen
-
[openGL] Textur an Terrain ausrichten
Von Cromon im Forum C/C++Antworten: 0Letzter Beitrag: 03.11.09, 23:30 -
OpenGL Objekte nebeneinander zeichnen
Von hury im Forum C/C++Antworten: 0Letzter Beitrag: 11.06.08, 20:46 -
Unterstützung für OpenGL Entwicklung mit Java via Netbeans und OpenGL Pack
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 04.06.08, 15:13 -
C++ OpenGL zeichnen
Von hury im Forum C/C++Antworten: 1Letzter Beitrag: 23.05.08, 04:47 -
Bild als Textur für OpenGL laden
Von nobody2k1 im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 27.10.06, 02:20





Zitieren
Login






