|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Sun Aug 07, 2005 10:05 am Post subject: caurspīdīgums |
|
Tas kā panākt, lai poligons būtu daļēji caurspīdīgs, man ir zināms, bet kā regulēt caurspīdīguma pakāpi, vels viņu zin. Vai kāds nevar iepustot kādu koda gabalu, būšu ļoti pateicīgs. |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Sun Aug 07, 2005 2:17 pm Post subject: |
|
Nu, ir divi veidi, kā panākt caurspīdīgumu:
1) alpha tests, izmantojot glAlphaFunc(GL_GREATER,0.5f); un glEnable(GL_ALPHA_TEST); - tas noziimee, ka renderēti tiks tikai tie pixelji, kuru alpha buus lielaaka par 0.5
2) blendings, ar glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); un glEnable(GL_BLEND); - tas noziimee, rendereeti tiks visi pixelji, bet to alfa noteiks to caurspiidiigumu. 1 -necaurspiidiiga, 0 - caurspiidiiga, pavidam - puscaurspiidiiga. _________________
|
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Sun Aug 07, 2005 3:00 pm Post subject: |
|
tad , ja esgribu 1 puscaurspīdīgu poligonu, laikam jādara šādi:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, caurspīdīguma intensitāte);
glBindTexture(GL_TEXTURE_2D, tx[0]);
DrawTriangle(i);
glDisable(GL_BLEND);
Vai es sapratu pareizi? |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Sun Aug 07, 2005 3:18 pm Post subject: |
|
nea, jaadara shitaa:
Code: |
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, tx[0]);
DrawTriangle(i);
glDisable(GL_BLEND);
|
Ja textuurai ir alpha kanaals, tad no taa tiks njemtas alpha veertiibas. Ja nav, alpha vienmeer buus 1. Te naak paliigaa glColor4f(..); kur peedejaa veertiiba ir alpha. Taapat kaa paareejas kraasas alpha tiek njemta no textuuras un tad pareizinaata ar to veertiibu, ko esi devis ar glColor4f, un rezultaats tiek uzskatiits par konkreetaa pixelja alphu. Taapeec, ja textuurai nav alpha kanaala, vari noraadiit piemeeram glColor4f(1.0f,1.0f,1.0f,0.5f) - tad poligons buus 50% caurspiidiigs. _________________
|
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Sun Aug 07, 2005 5:28 pm Post subject: |
|
o! liels paldies,Giga. |
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Tue Aug 09, 2005 12:15 pm Post subject: |
|
ir tāda problēma, ka caurspīdīgumu mazāku par 50% nevar dabūt. Uzliku alpha 0.4 un plakne vispār ir neredzama Kāds te varētu būt risinājums? |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Tue Aug 09, 2005 12:20 pm Post subject: |
|
Tev nav iesleegts arii glEnable(GL_ALPHA_TEST); ? _________________
|
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Tue Aug 09, 2005 12:24 pm Post subject: |
|
Bija gan, tagad strādā. Paldies.
vispār kam tas alfa tests vajadzīgs? |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Tue Aug 09, 2005 12:39 pm Post subject: |
|
Loti daudz kam GL_BLEND ir labs, ja ir tikai viens caurspiidiigs objekts, vai arii tik daudz, ka tos var atljauties sasorteet back-to-front, vai arii taadi objekti, kuriem dziljuma errori nav redzami/ir pienjemami. Pameegjini uzziimeet 2 caurspiidiigus objektus vienu aiz otra, no saakuma ziimeejot prieksheejo. Ja buus iesleegts depth-write, taalaakais nebuus redzams. Ja nebuus, tad taalaakais tiks uzblendeets pa virsu pirmajam, izskatiisies, ka tas ir priekshaa. Jo GL_BLEND arii pilniigi caurspiidiigam objektam saglabaas veertiibas depth bufferii, taapeec aiz taa ziimeetie objkti nebuus redzami. Lai to atrisinaatu bez sorteeshanas, vajadzeetu lai katram pixelim tiek saglabaati visi caurspiidiigie pixelji un to dziljumi, lai pievienojot jaunu pixeli vareetu pielikt tam priekshaa vajadziigos, kaa arii aiz vinja aizlikt vajadziigos caurspiidiigos pixeljus. Un video kartes taa nestraadaa, un ja arii taa vareetu dariit, tas buutu leenaak, nekaa sorteejot objektus pirms rendera un rendereejot saakot ar taalaako. Bet objektiem, kuriem der arii variants caurspiidiigs/necaurspiidiigs, bez vidus celja, lai tie nebuutu jaasortee, noder GL_ALPHA_TEST, lai depth bufferii netiku saglabaati caurspiidiigie fragmenti, un vareetu rendereet kaadaa seciibaa grib. _________________
|
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Wed Aug 10, 2005 3:42 pm Post subject: |
|
Vai ir iespēja kā textūru izmantot 8bit bmp(melnbalts). Ielādēt itkā izdevās bet uz ekrāna kaut kāds gļuks.
Man liekas, ka problēma ir šeit:
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB???, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, addr(Data[0]));
Laikam ir jābūt citam formātam, vispār neēsmu pārliecināts. |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Wed Aug 10, 2005 8:19 pm Post subject: |
|
Hmm, nekad neesmu meegjinaajis... bet itkaa GL_LUMINANCE vai GL_RED vaidzeetu buut... pameegjini abus gan GL_RGB un GL_RGBA vietaa. _________________
|
|
Back to top |
|
|
anggelus
Joined: 23 Feb 2005 Posts: 383 Location: Rīga (LV)
|
Posted: Wed Aug 10, 2005 9:16 pm Post subject: |
|
vajadzētu būt GL_LUMINANCE _________________ No comprendo lo que dice. |
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Thu Aug 11, 2005 1:45 pm Post subject: |
|
ai, es izdarīju vienkāršāk: BMP.pixelformat := pf32bit; tagad ar GL_RGBA strādā |
|
Back to top |
|
|
S1 Indago dalībnieks
Joined: 31 Jul 2005 Posts: 219 Location: Jelgava
|
Posted: Fri Aug 12, 2005 12:44 pm Post subject: |
|
Lai varētu regulēt caurspīdīgumu, es atslēdzu alfatest, bet tagd vairs nestrādā transparentās TGA textūras , tām vairs nav caurspīdīgs fons. Ko lai dara? |
|
Back to top |
|
|
GiGa Indago Uzvarētājs
Joined: 25 Sep 2003 Posts: 887
|
Posted: Fri Aug 12, 2005 2:11 pm Post subject: |
|
Nu kad vajag iesleedz alpha testu, un kad vajag iesleedz blendu, Kad vajag abus. Kad vajag nevienu Lai es pateiktu ko vairaak, Tev buus jaapastaasta vairaak - kaadas textuuras, kas vinjiem alfaas un ko tieshi gribi panaakt. _________________
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|