.[ ČeskéHry.cz ].
OpenGL problém maskou

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
JC



Založen: 06. 10. 2007
Příspěvky: 137

PříspěvekZaslal: 6. duben 2010, 16:52:36    Předmět: OpenGL problém maskou Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu  
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 6. duben 2010, 17:50:04    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu  
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 6. duben 2010, 21:49:43    Předmět: Odpovědět s citátem

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ě Smile (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
Zobrazit informace o autorovi Odeslat soukromou zprávu  
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 7. duben 2010, 02:00:08    Předmět: Odpovědět s citátem

- 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
Zobrazit informace o autorovi Odeslat soukromou zprávu  
ICQ
JC



Založen: 06. 10. 2007
Příspěvky: 137

PříspěvekZaslal: 7. duben 2010, 14:57:32    Předmět: Odpovědět s citátem

díky, zkusím to kombinování textur
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu  
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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