.[ ČeskéHry.cz ].
NeHe font z lekce 17 + světlý podklad

 
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
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 14. srpen 2009, 18:38:45    Předmět: NeHe font z lekce 17 + světlý podklad Odpovědět s citátem

Dobrý den,

K nakreslení fontu v OpenGL používám třídu založenou na NeHe tutoriálu 17. Mám ovšem jeden problém - pokud fontem překresluji světlejší podklad (např. bílý), není překreslen barvou fontu (tj. font se od bílými pixely "ztrácí").

Myslím, že je to kvůli funkci glBlendFunc(GL_ONE, GL_ONE), která s těmito parametry pouze "přidává", nikoliv "odebírá" barvu pixelu. Nevíte jak to spravit? Embarassed
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Poky



Založen: 29. 06. 2009
Příspěvky: 184
Bydliště: Písek / Plzeň

PříspěvekZaslal: 14. srpen 2009, 18:42:06    Předmět: Odpovědět s citátem

Myslím, že TADY najdeš řešení. Musíš zkoušet Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 14. srpen 2009, 18:59:02    Předmět: Odpovědět s citátem

Když já už zkoušel snad všechno... Confused

P.S.: Jsou tu podezřelé výpadky, rychle zálohujte Wink
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 14. srpen 2009, 22:20:06    Předmět: Odpovědět s citátem

skusil si glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)? tato funkcia nastavuje akym faktorom sa vynasobia farby. tie sa defaultne rataju takto. vysledok = sfaktor * zdrojova_farba + dfactor * cielova_farba. (nasobi sa kazda zlozka osobitne) zdrojova farba je farba ktora prave prichadza. teda farba textu napr. cielova farba je co uz bolo zapisane do bufferu predtym. pri GL_ONE, GL_ONE je faktor 1 teda sa farby len scitaju. GL_ZERO farbu vynuluje. teda ked sa nastavi pre sfaktor GL_ZERO tak sa uz nic neda nakreslit pretoze priciataju sa len nuly. GL_SRC_ALPHA vynasoby farbu alfou ktora je ulozena v texture. takze ked je v alfa kanali 0 tak je priehladna ked 1 tak nie. GL_ONE_MINUS_SRC_ALPHA zase zoslabi povodnu farbu tym viac cim nepiehladnejsia je prichadzajuca textura. tato kombinacia GL_SRC_ALPHA a GL_ONE_MINUS_SRC_ALPHA prakticky zabezpeci linearnu interpolaciu medzi danymi farbami.

inak 17 lekcia presvita kvoly tomu ze bmp nema alfa kanal. takze nastav glBlendFunc() a vytvor si textutu ktora bude mat alfa kanal.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 15. srpen 2009, 09:26:35    Předmět: Odpovědět s citátem

Ó ano! Stačilo udělat texturu fontu ve formátu tga a v GIMPu jí dát černou do alfy. Poté glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) a je to! Moc diky.

Tagy: OpenGL, font, písmo, glBlendFunc, textura, alpha, alfa

(Pomáhejme strýčkovi Googlovi) Smile
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
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