dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

caurspīdīgums
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> OpenGL
View previous topic :: View next topic  
Author Message
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: 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
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: 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
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: 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
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: 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
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Sun Aug 07, 2005 5:28 pm    Post subject:

o! liels paldies,Giga.
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: 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 Shocked Kāds te varētu būt risinājums?
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Tue Aug 09, 2005 12:20 pm    Post subject:

Tev nav iesleegts arii glEnable(GL_ALPHA_TEST); ?
_________________
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Tue Aug 09, 2005 12:24 pm    Post subject:

Bija gan, tagad strādā. Laughing Paldies.
vispār kam tas alfa tests vajadzīgs?
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Tue Aug 09, 2005 12:39 pm    Post subject:

Loti daudz kam Smile 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
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: 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
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: 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
View user's profile Send e-mail
anggelus



Joined: 23 Feb 2005
Posts: 383
Location: Rīga (LV)

PostPosted: Wed Aug 10, 2005 9:16 pm    Post subject:

vajadzētu būt GL_LUMINANCE
_________________
No comprendo lo que dice.
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: 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ā Smile
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: 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 Shocked , tām vairs nav caurspīdīgs fons. Ko lai dara?
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: 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 Razz Lai es pateiktu ko vairaak, Tev buus jaapastaasta vairaak - kaadas textuuras, kas vinjiem alfaas un ko tieshi gribi panaakt.
_________________
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> OpenGL All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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