funktioniert gldrawarrays mit multitexturing
-
Hi Leute,
die grobe frage steht ja schon in der überschrift.
um genauer zu werden: ich hab nun code der eigendlich, so meine ich zumindest,
soweit funktionert, wenn ich jedoch das programm starte, seh zwar das objekt, also geometrie und normalen berechnung funktioniert aber texturen sind nicht zu sehn.weiss jemand zufällig weiter? danke
mfg Oermel
-
Leider sind unsere Glaskugeln meistens in Reperatur, oder sie erzeugen einfach zu hohe Stromkosten.
Also bitte zeig den Code, der nicht so funktioniert wie er soll.
Ansonsten vielleicht noch ein paar Standardfragen:
GL_TEXTURE_nD aktiviert?
Texturkoordinaten übergeben?
*Richtige* Texturkoordinaten übergeben?
-
hast ja recht

also das hier ist der code zum rendern (modelle[mcounter]->textured is auf jeden fall true):glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); if( modelle[rmcounter]->textured) { glActiveTextureARB(GL_TEXTURE0_ARB); glDisable(GL_TEXTURE_2D); glActiveTextureARB(GL_TEXTURE1_ARB); glEnable(GL_TEXTURE_2D); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glBindTexture(GL_TEXTURE_2D, textures[modelle[rmcounter]->mtexture].texID); } if( vbosupported) { glBindBufferARB( GL_ARRAY_BUFFER_ARB, cname[rmcounter] ); glVertexPointer(3, GL_FLOAT, 0, (char *) NULL ); glBindBufferARB( GL_ARRAY_BUFFER_ARB, nname[rmcounter] ); glNormalPointer( GL_FLOAT, 0, (char *) NULL ); glBindBufferARB( GL_ARRAY_BUFFER_ARB, uvname[rmcounter] ); glNormalPointer( GL_FLOAT, 0, (char *) NULL ); } else { glVertexPointer(3, GL_FLOAT, 0, modelle[rmcounter]->vertex ); glNormalPointer( GL_FLOAT, 0, modelle[rmcounter]->normal ); if( modelle[rmcounter]->textured) { glTexCoordPointer(2, GL_FLOAT, 0, modelle[rmcounter]->texcoord ); } } if( !zerstoert) { glDrawArrays( GL_TRIANGLES, 0, modelle[rmcounter]->icounter*3 ); } glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); if( modelle[rmcounter]->textured) { glActiveTextureARB(GL_TEXTURE0_ARB); glDisable(GL_TEXTURE_2D); glActiveTextureARB(GL_TEXTURE1_ARB); glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); }
-
Übegebe einfach per
glBindBuffer(GL_ARRAY_BUFFER, m_texture_coords); glTexCoordPointer(2, GL_FLOAT, 0, <TEX-Coords>);noch die Textur-Koordinaten

-
ach ja stimmt! kommt davon wenn man zuviel copy paste mitm eigenen code macht ^^ thx