Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
JC
Založen: 06. 10. 2007 Příspěvky: 137
|
Zaslal: 6. duben 2010, 16:52:36 Předmět: OpenGL problém maskou |
|
|
Ahoj,
mám problém s maskou, mixuje mi to barvy viz:
kód: |
glEnable(GL_BLEND); // Enable Blending
Images['ground_dirt'].draw(5,5,0); // dirt texture
glBlendFunc(GL_DST_COLOR,GL_ZERO);
Images['transition01'].draw(5,5,0); // mask texture
glBlendFunc(GL_ONE, GL_ONE);
Images['ground_grass'].draw(5,5,0); // grass texture
glDisable(GL_BLEND);
|
Když vynechám grass texturu tam mi to udělá toto:
Images[].draw kreslí obdelník pomocí triangle strip a mapuje texturu, jiné openGL přikazy tam nejsou
Poradíte ? NeHe tutorial (20) jsem si prošel, ale nepomohlo |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 6. duben 2010, 17:50:04 Předmět: |
|
|
no je to naozaj cudne. trava by sa mala vykreslit na miestach kde je cierna a nie ako tebe kde je biela. ten obrazok s vynechanou travou je spravny tak to ma byt. ale aj tak by som sa pozrel na alfa testing a textury s alfa kanalom. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 6. duben 2010, 21:49:43 Předmět: |
|
|
Za prvé, nebudu zkoumat ty nastavení blendingu, ale jestli je tam skutečně operace součet, jak je nakresleno symboly u obrázku, tak je výsledek správně (hnedá + zelená = světlejší hnědá, v rohu +bílá = víc světlejší hnědá, takže žlutá). Za druhé, použij multitexturing. _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 7. duben 2010, 02:00:08 Předmět: |
|
|
- Chybí BlendFunc pro první texturu, tipuju GL_ONE, GL_ONE na černým framebufferu.
- Ty blendovací funkce jsou blbě. Rozepiš si to na papír, jak se tam ty barvy násobí a sčítají. Rovnice je (nový_pixel * prvni_parametr + pixel_na_framebufferu * druhý parametr).
Ty chceš dosáhnout: textura1 * (1 - maska) + textura2 * maska
Teď tam máš: textura1 * maska + textura2
Blending mi na tohle přijde asi nejmíň vhodný. Lepší by byl glLogicOp, nebo ARB_texture_env_combine, nebo shadery. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
JC
Založen: 06. 10. 2007 Příspěvky: 137
|
Zaslal: 7. duben 2010, 14:57:32 Předmět: |
|
|
díky, zkusím to kombinování textur |
|
Návrat nahoru |
|
 |
|