alfred97 Skrevet 6. desember 2007 Del Skrevet 6. desember 2007 Har et snodig problem med glTexSubImage2D. Her er koden: GLfloat *data = new GLfloat[63 * 63]; GLfloat *p = data; for (int i = 0; i < 63; i++) for (int j = 0; j < 63; j++) *(p++) = (GLfloat)j / 62.f; ::glBindTexture (GL_TEXTURE_2D, texmap); ::glTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0, 63, 63, GL_LUMINANCE, GL_FLOAT, data); delete data; "texmap" er her en 1-kanals 64x64 texture, og målet er å overskrive et felt på 63x63 innad i denne, altså ikke å overskrive hele. Ikke heng dere opp i den nøstede for-løkken og dens effektivitet. Den er bare lagt inn for å gi et resultat som er lett å forutsi; vanligvis vil data komme fra et helt annet sted. Problemet som oppstår er uansett det samme: Det overskrevne feltet på texturen blir speilet rundt diagonalen (0,0)-(1,1). Dette leder meg til å tro at jeg har misforstått noe som angår glTexSubImage2D. Noen som har innspill på dette? Her er det resultatet jeg forventer: Dette er det resultatet jeg får ut: Lenke til kommentar
GeirGrusom Skrevet 6. desember 2007 Del Skrevet 6. desember 2007 Ser egentlig ut som om teksturkoordinatene dine er feil bare. Lenke til kommentar
Mr.Garibaldi Skrevet 10. desember 2007 Del Skrevet 10. desember 2007 Ser egentlig ut som om teksturkoordinatene dine er feil bare. Ja, ser sånn ut for meg også. Hvis du poster koden hvor du tegner firkanten kan vi sikkert være mer behjelpelig. Men veldig enkelt ville jeg si at dette burde gjøre nytten glTexCoord1f(0.0); glVertex2f(0.0, 1.0); glVertex2f(0.0, 0.0); glTexCoord1f(1.0); glVertex2f(1.0, 0.0); glVertex2f(1.0, 1.0); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå