Skocz do zawartości

[Delphi/OpenGL]Blending, maska


5corpio

Polecane posty

Witam usiłuje zrobić maskowanie tekstury za pomocą blendingu. Mam 2 pliki BMP jeden z teksturą drugi z maską.
W tutorialach nehe jest taki kod na ów maskowanie:

[code=Delphi]
glEnable(GL_BLEND); // ZH[[BXJÓŃTT
NgćRFW7FnĆV&b6śćrFVv&ĆĄ1}MQ}
=1=Hą1}iI<źź)Ó ąnding barvy obrazu pomoc nuly (ern)
if scene then ZZ[YHZHS&VvvG&6ĆFVbÓźźCźŃź4(ąIŃŃroll*360,0.0,0.0,1.0); // Rotace na ose zBYX[[ŚRŚWN6śnÓ&Vvv&ćEFWGW&RtDaQUI|ąŃŃltźź[ąŃŃŁ4 glBegin(GL_QUADS); // Zz8]Z[H:[ZCB^
NfW'FW6bÓÓvFW6&C&bąYŃ4(ąQ
glVertex3f( 1.1, 1.1, 0.0);
glTexCoord2f(0.0, 1.0);^LKKKK
NB[

NśćV2&W6ĆVVćCą ąĄ1}=9ą1}=9źźAźuh barevn obrzek
glBindTexture(GL_TEXTURE_2D,textureJN;HZ?H^ZBY[ÓUPQĘNŚFV&W6ĆV&NĆżvFW6&C&bąYŃ4(ąQ
.0); glVertex3f(1.1, -1.1, 0.0);
glTexCoord2f(1.0, 1.
N^KKKK
NB^K
vfW'FW6bÓvVćBźź-ą4(4*n*'Z+)ĆRZ'ę)r8Ś3jxĄ
$8łśDDzw^'ZfŹu,Ź\"zx'Źjv,Dł^Łęił,śęśh)fŹ'zK-źzśłs6ŹŁ]zZaB[XJÓS
NB[[ĘÓŃÓÓÓTĘN`v&ćEFWGW&RtDUEU$Uó$BfĆvW%DU6ćeFW&ą Ą1}EUL4(ąQ
4(ąYŃ;
glTexCoord2f(1,0);
glVertex3f(40,5,0);
glTexCoorLKJNB^
L
NB^JNB&W'FW6b3RvVćBv&ĆVćDgVć2tRtd4(ą QŃĄ1}QaQUI|ąQ`Q=4(ą%gin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(35,5,0);^K
NB^

K
NB^vfW'FW6bCvFW6&C&bvfW4(ą4(4(ąąĄ1} 194( [/code]

A efekt tego jest taki, że część, która nie powinna być widoczna jest widoczna jako pół-przezroczysta:

[img]http://img136.imageshack.us/my.php?image=screen6qg.jpg[/img]

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

1.Zrób to na multiteksturingu jeśli koniecznie chcesz uzyć dwóch tekstur
2.Można użyć jednej tektury tga lub zwykłej z czarnym kolorem niewidocznym
3.Sprawdź czy przed rysowaniem masz ustawione glColor3f(1,1,1);
4.Nie mam więcej pomysłów sprawdziłbym ten kod, ale za bardzo mi się nie chce tym bardziej że jeszcze nie zacząłem pisać swojej gierki

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

CYTAT(Jason)Można użyć plików TGA z maską przezroczystości :]
A co ja napisałem o_O
[quote] Ostatnio też widziałem ciekawą funkcję o której wcześniej nie słyszałem smile.gif
glAlphaFunc wink.gif [/quote]
To się raczej nie przyda w tej sytuacji.

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

no to widać pozostaje tylko Multitexturing albo TGA. No trudno :/

[quote] ub zwykłej z czarnym kolorem niewidocznym [/quote]
Jakto jednej zwykłej z kolorem czarnym niewidocznym ? BMP z czarnym tłem przecież nic nie da bo tak mam i kołuje cały czas z tym blendingiem.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Może bym pomógł ale co mi z tego jak znowu nie dostane “pomógł” ;-)
Oczywiście żart smile.gif.
Wieki temu napisałem mały program z drzewami (sorqa że wygląda tak okropnie ale wtedy dopiero zaczynałem programować i ćwiczyłem nawyki) sprawdź kod to zrozumiesz.
http://www.unit1.pl/dathox/files/Drzewa.rar
Oczywiście zamiast koloru czarnego najlepiej użyć jakiegoś innego nie używanego na drzewie np. czerwonego.

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Dziwny jest ten rekord z teksturą zapisem ale muszę obadać w każdym bądź razie dzięki. A pomógł mi nie działa w tym dziale coś.

Hmmm tekstura to tablica 256x256 4 wartości typu Byte czyli : RGBA pewnie to dziwne bo wydaje mi się, że dodałem do swojego programu wartość A dla piksela zmieniłem pare pierdół jak u Ciebie i nadal nic. Coś muszę chyba podłubać solidnie.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Zrobiłeś tak jak ja przy wczytywaniu tekstury ?

[code=Delphi] if (Red < 15) and (Green < 15) and (Blue < MJH[Y[B[HH[[CB&W7VEśr5Ł#SS [/code]
Czyli jeśli natężenie koloru w danym punkcie jest bardzo małe wtedy ustawia się wartość alpha na 0 dla pixela.

[quote] A pomógł mi nie działa w tym dziale coś. [/quote]
To jest niesprawiedliwe już trzecia osoba się wywinęła i to któryś raz z kolei sad.gif. Spox przeżyje ten cios smile.gif

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

hehe no właśnie robię, że jeśli składowe są małe tylko robiłem dla wartości < 5 to ustawiam Alpha, spróbuje jeszcze raz. Bo wszystkim działa a mi nie :/

Edit : Jupi wreszcie działa biggrin.gif hehehe zapomniałem o włączeniu blendingu :oops:
Dzięki Spider.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...