Snake5's Blog

Kāda spēļu veidotāja blogs…

Lielā un sarežģītā ideja.

Varbūt kāds te jau lasot bija aizdomājies – kāpēc es neesmu apskatījis single-pass lighting variantu. Es apskatījos, bet ne līdz galam. Tā ir liela un sarežģīta ideja. Prasītu pamatīgu sistēmas pārbūvi. Bet visticamāk būtu tā darba vērta. Tā nu man šķiet, ka es varētu pamēģināt to implementēt. Sliktākam jau rezultātam nevajadzētu būt. Bet sarežģīti tas viss ir. Pirms sarežģītu ideju veidošanas palīdz visu ideju un plānu izlikšana uz (virtuālā) papīra.

Plānoju implementēt single-pass apgaismojumu vismaz ar 4 gaismām. Ja būs par maz, vajadzēs domāt par 8. Vai par manuālu objektu dalīšanu līmeņu redaktorā, vai par citiem trikiem.. Pagaidām – 4 gaismas. 8 tekstūras tomēr lietot es varu bez īpašām problēmām (tekstūra/normālmape/lightmape/normāl-lightmape/4 shadowmapes).

Nepieciešams iekļauties ps_2_0 instrukciju skaitā, pat ja tas nozīmē nepieciešamību katram gaismu skaitam specializētu šeideri veidot.

Tā kā man shadowmapes glabās tikai 1 float’a informāciju (varētu jau būt tikai 1 bits, bet jādomā arī par blur’ošanu, un viena bita apstrāde nav nekas ātrs vai nepieciešams), jādomā būs par gaismu grupēšanu. Jebkurā gadījumā tas ir izdevīgi – 4x retāk mainīt rendertarget’u, gaismas zīmējot, ir laba optimizācija. Un blur’ošana 4x ātrāk notiek.

Vajadzēs izvēlēties gaismas pēc tā, vai tās ietekmē kameras laukumu, tad iedot tām shadowmapes. Gaismas ar lielāko rādiusu dabū lielākas shadowmapes, gaismas ar mazāko – mazākas. Ja shadowmape ar izmēru, kurš der gaismai ir aizpildīta, tad vispirms tiek meklēta par vienu izmēru lielāka shadowmape, tad par vienu mazāka, tad par 2 lielāka, tad par 2 mazāka utt. (plānoju kopā lietot 4).

Pagaidām laikam viss, ko biju vēlējies pierakstīt. Ja vēl kaut ko atcerēšos, tad labošu.

Komentēt