Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tekstuurin rajoissa viivat

Touho [12.10.2007 13:24:04]

#

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?

Mobel [12.10.2007 19:21:02]

#

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 ;)

Metabolix [12.10.2007 21:08:14]

#

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.

Touho [14.10.2007 23:59:05]

#

Toimii. Kiitos paljon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta