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

Lightmaps uzklāšana
Goto page 1, 2, 3  Next
 
dev.gamez.lv Forum Index -> OpenGL
View previous topic :: View next topic  
Author Message
EDDY



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

PostPosted: Wed Jun 30, 2010 10:49 am    Post subject: Lightmaps uzklāšana

Vai ir kādas OpenGL bibliotēkas, kas ļautu esošā kodā piekabināt pāris rindiņas, lai palaižot programmu (spēli), uz tekstūrām būtu izrēķinātas Lightmaps?

Skatos, ka labāk ēnu iedot tikai personāžiem un dinamiskiem objektiem, citādi viss izskatās pretīgi ar esošiem parametriem. Var pietvīkot, bet tad jāsamazina konusa gaismas kūli prožektora gaismai. Un beigās sanāk nereāli. Bet meklēt atkal kādu dzini, nu nē.

Viss pārējais jau paliek.
_________________
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: Wed Jun 30, 2010 11:51 am    Post subject:

Tāda bibliotēka nav iespējama.

Jo savā kodā objektus renderēt (kā datus padot CPU->GPU) ar OpenGL var ļoti daudz dažādos visneiedomajākos veidos. Tāpēc tāda bibliotēka nevar eksistēt, jo tā nevar paredzēt miljons un vienu renderēšanas veidu. Tā būs ne tikai nefleksibla, bet arī liela un monstrīga.

Lightmapi jau eksistējošam renderēšanas kodam var pielikt ļoti vienkārši, īpaši ja lieto šeiderus. Dabū tekseli no lightmapes un pareizini ar esošā pikseļa sampļa vērtību vienkāršākājā gadījumā (tik 2 operācijas!). FF-paiplainam bik vairāk koda, bet arī ne-īpaši sarežģītāk.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Jun 30, 2010 12:31 pm    Post subject:

Lightmapju renderēšana ir offline process. Lietoto algoritmu dēļ uz spēlētāja datora tas nenotiek parasti.

Bet nu princips sasodīti vienkāršs. Vari uztaisīt savu pats. Tā kā tev viss uz meshiem bāzēts, modelēšanas rīkā uztaisi otro tekstūru koordinātu kanālu, kurā katram trijstūrim ir sava vieta un vēlams, lai savienotie trijstūri paliek savienoti, vismaz tie, starp kuriem leņķis nav ass. Tad vari uztaisīt aprēķināšanu pirmajā palaišanas reizē, atstājot aprēķinātās lightmapes kopā ar spēli, kad dosi to spēlētājiem. Paši aprēķini ir vēl vienkāršāki. Katram lightmapes tekselim atrodi tā pozīciju līmenī, ieraksti tur ambient'o krāsu un ar katru gaismu...{ paņem tās krāsu (floating point vektora izskatā), piereizini stipruma faktoru pēc attenuation funkcijas, un, ja rezultāts iznāk lielāks par 0, tad uztaisi raycastu no tekseļa pozīcijas līmenī pret visiem meshiem (ieskaitot šo), piereizini ēnas faktoru un pieskaiti gaismas krāsu lightmapē esošajai krāsai. }

Ja plāno lietot lightmapes, kurās ir gaismas stiprākas par 1.0f kādā no kanāliem, dali beigās visu ar 4 vai 2, zīmējot lightmapes krāsu reizini ar 4 (vai 2), ja šeideri lieto, vai lieto atbilstošo iespēju FFP uzstādījumos. Ar Direct3D tas bija texture stage state - D3DTOP_MODULATE4x parastā D3DTOP_MODULATE vietā... ar OpenGL būtu jābut kaut kam līdzīgam.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Jun 30, 2010 12:48 pm    Post subject:

Es sapratu, ka viņš grib pielietot tās, nevis ģenerēt...
Back to top
View user's profile Send e-mail
EDDY



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

PostPosted: Wed Jun 30, 2010 12:50 pm    Post subject:

snake5 wrote:
Lightmapju renderēšana ir offline process....... Lietoto algoritmu dēļ uz spēlētāja datora tas nenotiek parasti.......... Tad vari uztaisīt aprēķināšanu pirmajā palaišanas reizē, atstājot aprēķinātās lightmapes kopā ar spēli, kad dosi to spēlētājiem.


Sāksim no sākuma labāk. Laughing

Tā ir offline spēle, singleplayer.
Palaižam spēli. Tiek ielādēts menu, paskraidam pa menu, spiežam play.
Te kaut kāds raytracing funktieris izrēķina no gaismām raidītos starus, sabliež kopā ar esošo tekstūras pixeli, ko atrod savā kolīzijas galā un viss.

Kaut kas līdzīgs bija uz DirectX SDK, kur tās grieķu kolonnas. Tur arī tika izrēķināts. Bet kvalitāte bija apšaubāma un tas nav lightmaps, bet gan kaut kāds radiance, fig zin. Izrēķināt es varu tepat mājās uz sava superdatora un iedot beigās gatavo failu.

Bet nu, negribu visu sarežģīt un zem saules nav nekā jauna, noteikti ir vienkāršāk viss darāms.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Jun 30, 2010 1:56 pm    Post subject:

bubu:
EDDY wrote:
...lai palaižot programmu (spēli), uz tekstūrām būtu izrēķinātas Lightmaps?


EDDY: Tiešām, nevajag visu sarežģīt. Very Happy Es visu izstāstīju. Ja vajag radiosity lightmapes, tad ir pietiekami daudz pamācību. Razz
Tas PRT rēķinās tiešām lēni un lightmapes gluži nedod. Ja nekļūdos, tur tika subdivide lietots un vertex'u krāsas mainītas.
Ar Offline procesu domāju to, ka tas nenotiek realtime. Tik ilgs, ka spēlētājam apniks gaidīt.

P.S. Vēl viens sīkums, ko aizmirsu pateikt - svarīgi lietojot meshus ir tas, ka lightmapes nosaukums satur gan līmeņa nosaukumu, gan mesh'a nosaukumu, gan tā indeksu (vieta spēles meshu masīvā / unikāls nemainīgs ID / ...).
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



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

PostPosted: Wed Jun 30, 2010 2:09 pm    Post subject:

modelēšanas rīkā uztaisi otro tekstūru koordinātu kanālu, kurā katram trijstūrim ir sava vieta un vēlams, lai savienotie trijstūri paliek savienoti, vismaz tie, starp kuriem leņķis nav ass.


Šis nu tiešām viegli izklausās. .... Crying or Very sad
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Jun 30, 2010 2:21 pm    Post subject:

3DS Max 9:
Unwrap -> Map channel: 2 -> Edit -> iezīmējam visus daudzstūrus -> Flatten Mapping.
Sarežģīti gan. Very Happy
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Jun 30, 2010 3:03 pm    Post subject:

Ah rēķināt vajag tomēr.
Tad toč ar dažām koda rindām neko tur nepāksi.
Back to top
View user's profile Send e-mail
EDDY



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

PostPosted: Wed Jun 30, 2010 3:06 pm    Post subject:

snake5 wrote:
Sarežģīti gan. Very Happy


Un? Man nevajag/negribās veidot/glabāt atsevišķas lightmapes. Wink
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Jun 30, 2010 3:14 pm    Post subject:

Nu tad liec visu apgaismojuma informāciju vienā. Tikai pašam grūtāk būs strādāt ar tādu.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



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

PostPosted: Wed Jun 30, 2010 3:24 pm    Post subject:

Redz, daudzu objektu UV kartes izklājums ir cube ar vienādu malu garumu.
Negribās tagad ķēpāties un mēģināt pārtaisīt. Lai gan, protams, spēlei būs pavisam citi 3D objekti. Pašlaik tikai tāds tech-demo.

Es tik domāju, vai ir tāda iespēja pēc raytracing metodes.

Nu nez, varbūt tiešām multitexturing un melnbaltās ēnas pa virsu. Bet atkal, tikko kāds objekts mainās, tā neko vairs .... visu pa jaunam.

Tāpēc programmai pašai sākumā jāizrēķina lightmaps un jāieglabā vajadzīgā vietā.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
gazz



Joined: 03 Jan 2004
Posts: 355
Location: Teika

PostPosted: Thu Jul 01, 2010 3:38 am    Post subject:

ignorance is bliss
Back to top
View user's profile Send e-mail
EDDY



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

PostPosted: Thu Jul 01, 2010 8:07 am    Post subject:

Laikam risinājums kā vienmēr nav. Rolling Eyes
_________________
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: Thu Jul 01, 2010 8:55 am    Post subject:

Risinājums vienmēr ir. Nav tikai universāla risinājuma, kas der jebkur un jebkam. Katram konkrētajam gadījumam uzrakstīt lightmapju ģenerēšanu vinemēr var.

Nezinu, cik labs, bet vari pamēģināt irrEdit, kas ģenerē radiosity lightmapes. Ja šis tavu līmeni mācēs ielādēt, tad varēsi uzģenerēt lightmapes.
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, 3  Next
Page 1 of 3

 
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