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

Ēnas no saulesgaismas
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija
View previous topic :: View next topic  
Author Message
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Mon Jun 05, 2006 9:17 am    Post subject: Ēnas no saulesgaismas

Sveiki,

es gribētu dzirdēt Jūsu viedokli par šādu jautājumu - kā vislabāk taisīt ēnas no saulesgaismas dinamiskiem objektiem? Apskatam variantu, kad jāizmanto shadowmapes nevis stencils, selfshadowings ir svarīgs un kroplīga ēnu raustīšanās pārvietojoties kamerai nu galīgi nav vēlama (tb atkrīt psm), un saule savu pozīciju nemainīs, kā arī būtu vēlams, lai ēnotajos apgabalos gaisma nekad nenonāktu, nevis tie tiktu vienkārši patumšināti.

Labākais variants, ko spēju izdomāt, bija taisīt daudz mazas shadowmapes, katram objektam vai tuvu stāvošiem objektiem pa vienai, renderēt visas ēnas vienā buferī (no kameras skatpunkta), un tad renderēt visu ģeometriju ar ieslēgtu saules ietekmi, katru pixeli pareizinot ar attiecīgo kopējo ēnu ietekmes bufera pixeli.

It kā visas prasības ir apmierinātas, bet liekas, ka ātrums nebūtu pārāk labs, ja katram objektam tiek taisīta shadowmape (nu tādā ziņā, ka katram tā tiek piebindota kā rendertargets, tad viņā renderēts, tad atkal tiek bindots rezultāta buferis un renderēts tajā - pats shadowmapes buferis jau būtu tikai viens). Tas būtu tāpat kā renderēt daudz mazas gaismiņas vienas lielas vietā. Varētu mēģināt izlīdzēties pāris reizes samazinot to bindošanu skaitu, ja ar viltīgām projection matricām katru objekta shadowmapi zīmētu konkrētā shadowmapes bufera apgabalā - tad izdotos apvienot vairākas shadowmapes vienā buferī. Bet tas jau sāk izskatīties pēc pārāk sarežģīta risinājuma.

Citiem vārdiem - labu risinājumu tā arī neesmu izdomājis, un sāk izskatīties, ka nāksies atmest kādus prasību punktus, lai panāktu normālu ātrumu. Negribat padalīties pieredzē?
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 05, 2006 10:32 am    Post subject:

Hmm, saulesgaismas ēnas ir nopietna problēma.
Pirmkārt - vajadzīgas augstas izšķirtspējas ēnu kartes.
Otrkārt - saules objekts ir tālu, līdz ar to blur effekts mainās.
Treškārt - HDRI atbalsta tikai noteiktas klases videokartes.

Vari izmantot DirectX aprakstīto PRT simulāciju, vienreiz noskaitļo, saglabā failus un spēlē.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 05, 2006 10:40 am    Post subject:

Vai tad ēnu kartes nodrošina self-shadowingu?
Kās par blur efektu vēl?
Kāds HDR sakars ar GiGa's problēmu?
Back to top
View user's profile Send e-mail
Delfins



Joined: 20 Jan 2003
Posts: 60
Location: Riga

PostPosted: Mon Jun 05, 2006 11:00 am    Post subject:

Saules (principā jebkurai) ēnai nav asas līnijas, bet blūrotas - blūra koef. atkarīgs no attāluma gaismasavots[platums] -> objekts -> ēnasplakne :) [in-real-life tā ir un fizikā/optikā to sauc par diafragmu]
_________________
.... ....... _ o
... ... .. _\ \>
.... ....(_)/(_)
Back to top
View user's profile Send e-mail Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 05, 2006 11:35 am    Post subject:

Tas saucās soft shadows nevis blur efekts :)
To renderēšanas cena ir ļoti augsta. Cik zinu, nav efektīva algortima kā to vienkārši iegūt. Laikam parasti tādas ēnas iegūst taisot parastas hard shadows vairākas reizes ar nedaudz nobīdītu gaismas avota pozīciju un sablendojot visas iegūtās ēnas kopā.
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: Mon Jun 05, 2006 11:36 am    Post subject:

Nejauksim iekšā HDR un ēnu izplūšanu atmosfēras gaismas laušanas dēļ, vismaz pagaidām. Galvenā problēma pagaidām ir cita.

bubu, kāpēc lai shadow mapi (ar to es domāju z-bufferus no gaismas skatpunkta) nenodrošinātu self shadowingu?

EDDY, vaitad PRT der lielām, dinamiskām scēnām? Ja tā, tad es būšu pārpratis viņu būtību.. varbūt iedosi kādu labu linku?
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 05, 2006 11:40 am    Post subject:

Ui sorry, sapratu, ka sajaucu light map ar shadow map :)
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Wed Jun 07, 2006 11:48 am    Post subject:

Pardon, GiGa, paarskatijos.
Domaaju, ka tev vajag Self Shadowing diensgaismaa esoshiem modeliem.

Aizmirstiet.....

Vari apskatiit DirectX SDK, Shdow Volumes piemeru, pieliec tam PRT tehniku un Ambient Dinamisko Okoluziju no NVidia SDK un cerams, ka buus OK. Ar eenu karteem nevajag aizrauties.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Wed Jun 07, 2006 6:05 pm    Post subject:

Quote:
Ar eenu karteem nevajag aizrauties


Nevēlies mazliet vairāk paskaidrot šo izteicienu?

Es līdz šim domāju, ka shadow mapi ir the way of the future. Palielinoties modernu spēļu scēnu sarežģītībai (poligonu daudzuma ziņā), man stencils sāk izskatīties aizvien nepievilcīgāks, jo katrs jauns poligons tam izmaksā gan silueta aprēķinos, gan vairāku shadow volume poligonu skaitā, bet shadow mapēm katrs jauns poligons nozīmē tikai vienu jaunu poligonu renderējot shadow map.

Vai arī tas bija domāts, ka stencil ir labāks risinājums tieši saules ēnām, jo tam nav shadow mapu neprecizitātes, kas rodas shadow mapu nepietiekamās rezolūcijas dēļ?
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Fri Jun 09, 2006 11:43 am    Post subject:

Ēnu kartes, stencil ēnas, shadow volumes, ambient okolūzija....
Labāk izmanto Raytraced ēnas, no punkta a līdz punktam b, izblurē ieguvušo ēnu un aidā.

Runājot par ēnu kartēm, teikšu ka tas ir way of yesterday.
Tagad modē ir 3. šeideri, kas darbojās ar fragmentu kartēm. Laughing
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
dev



Joined: 27 Jul 2004
Posts: 206
Location: Latvija

PostPosted: Fri Jun 09, 2006 11:46 am    Post subject:

Nu es shogad rakstu kursadarbu par ēnām reālā laikā. Izpētiju dažādus shadow mapu risinājumus. Konkrēti kādu mēnesi nocīnijos ar trapezoidal shadow maps, kamēr piedabūju lai strādā. Tad arī to varētu ieteikt. Metode gan nav pilnīgi universāla (tā pati tradicionālā problēma ja kamera skatās saulē tad priekšplāna ēnu rezolūcija samazinās), taču rezultāti ir diezgan labi - izmantojot 1024x1024 bufferi, ēna jau izskatās pēc stencil ēnas (t.i. bez robainuma). Nav arī ēnu raustīšanās jo grozot kameru trapezoidālā projekcija mainās līdz ar kameras orientāciju un tapēc nav rāvienveida izmaiņas pašā ēnā.
Runājot par softshadows - uz PS3 jau ir dažādi varianti.. nvidiai bija viens smuks demo sheideris. Man pasham ar bija viena ideja, bet pagaidām neesmu to notestējis.
Par to kursadarbu runaajot - man vel jaanofinalizee dazhas lietas, jaauztaisa demo drusku smukaaks (naakam 3dien aizstāvēšana) un tad jau varbūt padalīšos Smile
Back to top
View user's profile Visit poster's website MSN Messenger
dev



Joined: 27 Jul 2004
Posts: 206
Location: Latvija

PostPosted: Fri Jun 09, 2006 11:51 am    Post subject:

Holy crap, Eddy.. aaaaaaaaa.. Dzhiizas.. kautkas vnk nereaals ... aaaaaaaa.. tu kaarteejo reizi paarspeej pats sevi ar neizmeerojami grandiozo stulbumu..

Tevis teiktajam vispaar nav nemazaakaas jeegas..
Raytracing? tu ko - raytracings nav izmantojams reaalaa laikaa un nav savienojams ar musdienu grafisko hardwari..
Izbluuro un aidaa - tas vispaar labais Very Happy.. no comments..

PS3 fragmentu kartes? wtf?

Eenu kartes ir pagaatne? - taa ir tikai naakotne kas tiek izmantota arvien plashaak.. un tieshi SM3.0 dod iespējas arvien labāk izmantot ēnu kartes..
Back to top
View user's profile Visit poster's website MSN Messenger
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Sun Jun 11, 2006 5:52 pm    Post subject:

Ok, paldies par padomu, papētīšu tos trapezoidal shadow maps. Šoreiz pat tā uz sauli skatīšanās problēma nav aktuāla, jo padomā ir vairāk top-down skats uz lietām. Un, protams, ar nepacietību gaidu to Tavu pētījumu - lai veicas aizstāvēšanā Wink
Back to top
View user's profile Send e-mail
dev



Joined: 27 Jul 2004
Posts: 206
Location: Latvija

PostPosted: Mon Jun 12, 2006 1:26 pm    Post subject:

Beidzot atradu kļūdu ko nevarēju atrast ilgu laiku, protams kļūda bija tik stulba ka līdz viņai nebiju spējis aizdomāties - nepareiza gaismas vektora zīme (virziens).. tagad viss ir ok un var novērtēt rezultātus.

Metode ir interesanta, taču nav universāla, jo ir atkarīga no kameras "frustuma" orientāciju pret gaismu - t.i. metodes doma ir veidot gaismai tādu skata un projekcijas matricu, lai redzams būtu tikai kameras frustums un visi tie objekti kas met ēnas un atrodas starp gaismu un frustumu. Pietam vel tiek pielietota deformācija, kas kameras frustumu aproksimē ar trapeci un izstaipa šo trapeci maksimāli līdzīgu kvadrātam - tādejādi piepildot visu tekstūru un effektīvi izmantojot šadowmapa rezolūciju.
Transformācija ir atkarīga no dažādiem parametriem - piemēram, fokusa attālums - attālums kurā redzamie objekti mums interesē visvairāk un kuru ēnu rezolūcijai jābūt vislielākajai. Arī citām lietām. Reālā aplikācijā, grozoties kamerai, šie parametri būtu jāmaina dinamiski un jāpieskaņo lai iegūtu vēlamo rezultātu. Savā demo es to nedaru un tapēc viegli var apskatīt labāko un sliktāko gadijumu.

Rekur 3 attēli ar izmantotu vienu 1024 x 1024 tekstūru. (Uz FPS neskataties - tas ir debug builds bez jebkādas optimizācijas un ar šo to lieku fonā)

Labs gadijums


Slikts gadijums - kameras virziens sakrīt ar gaismas virzienu (rezultāts tāds pats kā standarta shadowmapēs) (Šo gan ir viegli uzlabot kādas 3 reizes, bet tas pagaidām nav izdarīts)


Parasts gadijums


Un labais gadijums ar 512x512 textūru - redzam ka vienalga ir ļoti labs rezultāts - gandrīz tikpatlabs kā 1024 gadijumā Smile (Slikto gadijumu nerādu - tas nav diezko labs Smile)


Par paša pētījuma "papīra" publicēšanu vel domāju Very Happy - drusku kauns, latviski par tām lietām nav diezko forši rakstīt Smile Arī kods dēļ laika trūkuma ir neoptimizēts un drusku haotisks..
Back to top
View user's profile Visit poster's website MSN Messenger
Hobits
Indago organizātors


Joined: 04 Jul 2003
Posts: 491
Location: Riga

PostPosted: Mon Jun 12, 2006 4:41 pm    Post subject:

Intereses peec, Tev nav gadiijumaa naacies peetiit taadu lietu kaa subdivided shadow maps un kaa vinjas darbojas saliidzinot ar TSM? Pavirshi apskatoties materiaalus izskataas ka taa esot veel labaaka metode par TSM?
vadoties no shejienes
Back to top
View user's profile Send e-mail Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija 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