Käyttis: Windows Vista
IDE: Dev-C++
Kirjastot: OpenGL, GLFW, glpng
Havainnollistava kuva: http://zux.sjr.fi/touho/texturebug.jpg
Miten saa tummat viivat poistettua?
Villi veikkaus, sillä en ole 3D-maailmaan suuremmin tutustunut. Voisikohan vikana olla se, että tekstuurin tiedosto on liian pieni. Ainakin 2D-maailmassa tuollainen tuli vastaan ja korjasin sen näin: http://www.tonypa.pri.ee/tbw/tut21.html
Ei kylläkään mitään hajua auttaako tuo - kunahan yritin ;)
Syynä lienee sellainen yksinkertainen, että kun tekstuuria venytetään filtteroinnilla, reunimmainen tekstuuripikseli blendataan reunan takana olevan kuvitteellisen mustan pisteen kanssa.
Kokeilepa lisätä tai muuttaa tällaiset parametrit tekstuurille:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
GL_REPEAT-lipulla reunan yli menevä osa otetaankin uudestaan toisesta reunasta ja esimerkiksi toistuvaa tekstuuria voi asettaa isolle polygonille ykköstä suuremmillakin tekstuurikoordinaateilla. En ole varma, vaikuttaako tämä tuohon tummaan reunukseen, mutta olettaisin näin. GL_CLAMP_TO_EDGE tarkoittaa, että n pikselin levyisessä kuvassa tekstuurikoordinaatit pakotetaan välille 1/(2n) – 1-1/(2n)
eli keskelle reunimmaista pikseliä pikselin reunan (0 tai 1) sijaan. Valitse näistä sopivampi, käsittääkseni näiden pitäisi ratkaista tuo ongelma.
Toimii. Kiitos paljon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.