Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 13. prosinec 2013, 22:46:58 Předmět: OpenGL - rozměry a pozicování textur |
|
|
Teď trochu ladím 2D engine a narazil jsem na dvé podobné nejasnosti. Když chci vykreslit obrázek jedna ku jedné do OpenGL okna, tak jaké přesně mám dát pozice trojůhelníků, ve kterých bude vykreslena ta textura? Prostě klasicky si vytvořím dva trojůhelníky (aby to udělalo obdelník) a namapuju na něj texturu. Levý dolní bod dám na souřadnice [0,0]. Kam mám dát pravý horní roh? Na [image.size.x, image.size.y] nebo na [image.size.x-1, image.size.y-1]?
Druhý podobný problém: když vykresluji scénu, neměl bych view matici translatovat o 0.5px? To aby souřadnice [0,0] nebyla v levém dolním rohu levého dolního pixelu, ale uprostřed levého dolního pixelu. Když jsem to řešil minule, tak jsem to translatoval o 0.5px (asi jsem z něčeho odvodil, že je to tak lepší), ale teď tam ten rozdíl nevidím a naopak mi přijde, že se to líp vykresluje bez té translace.
Teď mám dost nestabilní ovladač grafiky, takže o všelijaké grafické artefakty nemám nouzi. Sice to asi pomůže vyrobit odolnější software, ale zas na takové jemné ladění to moc není . |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 14. prosinec 2013, 13:17:07 Předmět: |
|
|
ak si nastavis klasicku glOrtho(0, width, 0, height, -1, 1) maticu tak lavy dolny roh obrazovky bude mat suradnice [0;0] a horny pravy zase [width;height]. ALE stred pixela bude mat suradnice [0.5;0.5] takze ak chces vykreslit bod pixelovych suradniciach [100;200] musis poslat suradnice [100.5;200.5]. na druhu stranu ak chces vykreslit stvorec tak musis pouzit cele cisla ako suradnice aby si pokryl cely pixel.
to iste plati aj pre textury. suradnica na ktorej je stred texelu ma suradnice [0.5/tex_width;0.5/tex_height] v konecnom dosledku sa teda tieto dva posuny vyrusia ak chces vykreslovat 1:1 texturu na obrazovku.
v skratke ak chces vykreslit 1:1 texturu tak vertexy maju mat suradnice ako cele cisla. texturove koordinaty tiez potom tiez zadavat aby na hranicu jednotlivych texelov teda [x/tex_width;y/tex_height]
dobry test by mal byt porovnanie vykreslenia s GL_NEAREST a GL_LINEAR filtrovanim. ak tam nie je ziadny rozdiel tak to kreslis spravne. ak je GL_LINEAR rozmazane tak niekde robis chybu. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 14. prosinec 2013, 16:15:45 Předmět: |
|
|
Pokud chceš čistě obrázek bez filtrování, tak taky můžeš použít texelFetch, který bere přímo souřadnice v rozměru obrázku a ne normalizované na <0, 1> _________________ Perry.cz |
|
Návrat nahoru |
|
 |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 14. prosinec 2013, 18:44:33 Předmět: |
|
|
Diky za informace. Jdu na to  |
|
Návrat nahoru |
|
 |
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
Powered by phpBB © 2001, 2005 phpBB Group
Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna