Problem mit glTexImage2D



  • hi

    so folgendes Problem. Aus irgendeinem Grund wird wenn ich die Funktion "glTexImage2D" benutze die Texture nicht angezeigt. Verwende ich hingegen die "gluBuild2DMipmaps" dann wird die Texture angezeigt.

    Ich habe schon alle Parameter überprüft bzw. auf feste Wert mal gesetzt, hat aber nicht gebracht. GetLastError liefert 0 zurück also alles OK.

    Ich weiß ehrlich gesagt nicht mehr weiter. Habe jetzt schon den ganzen Abend damit verbraten und den Fehler immer noch net gefunden. 😡

    globToolkit.LoadTga( "Data2\\PN00.TGA", &info );
    
    	glGenTextures(1, &globTexID);
    	glBindTexture(GL_TEXTURE_2D, globTexID);
    	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    	glTexImage2D( GL_TEXTURE_2D, 0, info.iBpp/8, info.iWidth, info.iHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, info.pImage );
    
    	//gluBuild2DMipmaps( GL_TEXTURE_2D, info.iBpp/8, info.iWidth, info.iHeight, GL_RGB,  GL_UNSIGNED_BYTE, info.pImage);
    

    gruß
    de_Bert



  • kann nur mal raten, opengl ist bei mir schon ne weile her, aber vielleicht hast dich vertippt und gluBuild2DMipmaps() ist da toleranter mit fehlern 😕

    de_Bert schrieb:

    [cpp]
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    [/cpp]



  • hi

    ja keine ahnung. Das seltsame ist ja das GetLastError keinen Fehler zurück liefert. Hat vieleicht noch jemand eine Idee was vieleicht fehlen tut oder so.

    gruß
    de_Bert



  • Hi,

    laut http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc03_16jo.asp
    stimmen die Parameter nicht überein ...

    Grüsse



  • hi

    hööö welche Parameter stimmen da den nicht???? Ich sehen ehrlich gesagt keinen Unterscheid 😮 .

    Hilf mir mal auf die Sprünge

    gruß
    de_Bert



  • Floh brachte Dich nicht weiter?



  • Hi

    Sgt. Nukem schrieb:

    Floh brachte Dich nicht weiter?

    öööömmmmm irgendwie net!!! 😕 😕

    Siehst du etwas was ich net tu?????

    gruß
    de_Bert



  • hi

    habe jetzt mal ein bissel rum experimentiert und festgestellt das nur Schwarzweiß Bilder dargestellt werden. Wenn Farbe drin ist bleibt mein Quad weiß!!!

    kann mir das jemand mal erklären 😕 😕 😕

    gruß
    de_Bert



  • Och, des is' ja goar kinn Rächtschreibfehler! 🤡 👍
    Gut, Kommando zurück!

    Dann würd' ich auf einen Unterschied zwischen TGA und info.iBpp/8 schließen:

    de_Bert schrieb:

    globToolkit.LoadTga( "Data2\\PN00.TGA", &info );
    	glTexImage2D( GL_TEXTURE_2D, 0, info.iBpp/8, info.iWidth, info.iHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, info.pImage );
    

    Hast Du Dir den Wert mal ausgegeben bzw. im Debugger angeschaut??
    In welchem Format liegt das TGA vor?

    Ggf. mal mit den genannten Konstanten experimentieren:

    MSDN schrieb:

    GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16

    EDIT: Rächtschreibung 😃



  • Hi

    Sgt. Nukem schrieb:

    Hast Du Dir den Wert mal ausgegeben bzw. im Debugger angeschaut??
    In welchem Format liegt das TGA vor?

    Ggf. mal mit den genannten Konstanten experimentieren:

    MSDN schrieb:

    GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16

    Also mit keiner der Konstanten funktioniert es.
    Ja ich habe mit mal die Werte im Debugger angeschaut und die sind OK. Das TGA liegt im RGB format vor. Der Loader wandelt es automatisch vom BGR in RGB um.

    Also ich weiß echt nicht mehr weiter 😞 😞

    gruß
    de_Bert


  • Mod

    wie gross ist die textur (auflösung) und wie gross ist das tri/quad/poly auf dem du es anzeigst (in pixeln)?

    rapso->greets();



  • Hey rapso, kein Herz für Windows? 😉

    Bye, TGGC (Reden wie die Großen)



  • hi

    Auflösung = 1024x768x24
    Quadgröße = -3/-3 bis 3/3

    glEnable( GL_TEXTURE_2D );
    		glBindTexture( GL_TEXTURE_2D, globTexID );
    		glBegin(GL_QUADS);
    			glTexCoord2f( 0, 0 );
    			glVertex3f( -3.0, -3.0, 0.0 );
    
    			glTexCoord2f( 1, 0 );
    			glVertex3f( +3.0, -3.0, 0.0 );
    
    			glTexCoord2f( 1, 1 );
    			glVertex3f( +3.0, +3.0, 0.0 );
    
    			glTexCoord2f( 0, 1 );
    			glVertex3f( -3.0, +3.0, 0.0 );
    		glEnd();
    

    gruß
    de_Bert



  • Soweit ich weiss, muessen die Masse einer Textur immer Potenzen von 2 sein..
    Also passt da 768 nicht rein, wuerde ich sagen... 🙂 Und gluBuild2DMipmaps
    kommt aber damit klar.. Hatte ich auch schon das Problem.
    MfG Aoeke



  • hi

    Aoeke schrieb:

    Soweit ich weiss, muessen die Masse einer Textur immer Potenzen von 2 sein..
    Also passt da 768 nicht rein, wuerde ich sagen... 🙂 Und gluBuild2DMipmaps
    kommt aber damit klar.. Hatte ich auch schon das Problem.
    MfG Aoeke

    Tatsache 😮 😮 😮 . Ich fress n Besen. Habe jetzt das Bild in 512x512 konvertiert und siehe da, es funktioniert.

    So als letzte Frage. Mit welcher "gl*" Funktion ist es den möglich das Image in 1024x768 so zu manipuliern das die Funktion glTexImage2D es schluckt????
    Aber bitte keine glu Funktionen.

    ich danke dier Aoeke du bist der Held des Tages 😃

    gruß
    de_Bert



  • Es gibt extensions die Dir seltsamste Texturgrößen erlauben!



  • hi

    danke schön. Ich mach mich mal auf die Suche 😃



  • Das hatten wir auch schonmal...

    Bye, TGGC (Reden wie die Großen)



  • de_Bert schrieb:

    ich danke dier Aoeke du bist der Held des Tages 😃

    Ich denke, du verwechselst da was... rapso hat nach der Texturgroesse gefragt... Ich waere da sonst nie selbst drauf gekommen... 😃 Also ist er der Held... 😉
    MfG Aoeke



  • hi

    TGGC schrieb:

    Das hatten wir auch schonmal...

    Bye, TGGC (Reden wie die Großen)

    warum hast du dann, als Held, nicht das Rätsel gelöst???? 😃



  • Ich fürchte, man wird es mir übel nehmen, wenn ich dir den Grund nenne.

    Bye, TGGC \-/


Anmelden zum Antworten