Zanir » Blog Archive » Program 17 – Many Per Pixel Lights

Program 17 – Many Per Pixel Lights

13.09.2004

017_Many_Per_Pixel_Lights_2Program ukazuje osvetlenie po pixeli naraz s viacerými svetlami. Svetlá majú rôznu farbu a dosah. Jedným kreslením sa vykresľuje jedno svetlo spolu s útlmom a specular zložkou. Pre viac svetiel je nutné vykreslovať scénu viackrát. Kedže nie všetky trojuholníky sú osvetľované všetkými svetlami, každý trojuholník sa vykresľuje, iba toľko krát koľko svetiel ho osvetľuje. Ale okolo toho zistenia je dosť výpočtov, takže osvetľovať scénu týmto spôsobom017_Many_Per_Pixel_Lights_1 z veľa trojuholníkmi je dosť náročné na CPU. Môj model však nemá veľa trojuholníkov (má <1000).

Pomocou ps 1.4 je možné vykresliť 2 svetlá v jednom kreslení. Ale tento spôsob je čo sa týka výkonnosti porovnateľný s vykreslením 1 svetla v jednom passe (na Radeon 9100).

V programe je možné vystreľovať svetlá stlačením ľavého tlačítka myši. Stlačením shiftu sa vystreľuje jedno svetlo. Počet svetiel zobrazovaných v scéne je obmedzený počtom konštánt vo vertex shadery. Jedno svetlo zaberie dva konštanty (pozícia+dosah svetla a farba svetla). Pre GF3 a GF4 je maximalny počet svetiel 45, pre Radeon 8500 je 90. Pri väčšom počte svetiel vznikaju rôzne chyby. V programe je veľa rôznych nastavení. Napr. je možné nastaviť maximum vykreslených svetiel na jeden trojuholník.

Vyžaduje pixel shader 1.1. Používa pixel shader 1.4.

zdrojové texty a program – 500kB

Pridať komentár