Zanir » DX 8.1

Archív z ‘DX 8.1’ Kategórie

Program 22 – Horizon Mapping

06.01.2005

022_Horizon_MappingHorizon Mapping sa niekedy nazýva aj self shadowing. Umožňuje zobraziť tiene po pixeli, teda vykresliť tiene na textúre bez toho aby sa počítala nejaká geometria. Tieň sa vytvára na základe porovnania uhlu k svetlu (vertikálny uhol) od daného pixela (výška svetla) s uhlom horizontu. Ak je svetlo nad horizontom tak je uhol k svetlu väčší ako uhol horizontu. Čítať zvyšok príspevku »

Program 21 – Many Per Pixel Lights with Stencil Shadow

29.12.2004

021_MPPL_ShadowProgram vykresľuje scénu osvetlenú viacerými svetlami. Od každého svetla sú vrhané tiene. V programe je možné zvoliť osvetlenie po vrcholoch, po pixeli a po pixeli s offset mappingom.

Program vyžaduje hardwerovo akcelerovaný 8 bitový stencil buffer. Program používa pixel shader 1.1 a 1.4

zdrojové texty a program – 720kB

Program 20 – Stencil Shadow

22.12.2004

020_Stencil_ShadowProgram vytvára tieň za pomoci stencil buffra. Stencil buffer uchováva pre každý pixel hodnotu v rozmedzí 0 až 2^N-1, kde N je počet bitov stencil buffra. Hodnota sa mení podľa nastaveného operátora. Čítať zvyšok príspevku »

Program 19 – Offset Mapping

21.09.2004

019_Offset_Mapping_Offset_roomOffset mapping spočíva v posunutí textúrových koordinacií s ohľadom na pozíciu pozorovateľa a výšku povrchu tak, že vzniká dojem plastického povrchu. Konkrétne sa textúrové koordinácie posunú v smere od pozorovateľa pre hrbole a v smere ku pozorovateľovi pre diery. Čítať zvyšok príspevku »

Program 18 – Motion blur

15.09.2004

031_motion_blur_with_pbufferJedná sa o ase loader rozšírený o triedu, ktorá vytvorý špecialný pixel buffer, do ktorého sa dá kresliť, a zároveň sa dá použiť ako textúra. Do tejto textúry sa vykresľuje scéna. Motion blur sa vytvára tak, že túto textúru pričítavam k frame bufferu:
frame(t+1) = alpha*textúra + (1-alpha)*frame(t)
Frame buffer sa nemaže. Frame buffer neobsahuje z-buffer. Alpha je prednastavené na 0.18. Veľkosť textúry je 1024 * 1024, textúra obsahuje z-buffer. Program je rovnocenný s OpenGL programom 31. Na mojej grafickej karte však DX program ide rýchlejšie. DX 127 FSP, OpenGL 104 FSP.

zdrojové texty a program – 700kB

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). Čítať zvyšok príspevku »

Program 16 – Per Pixel Lighting

23.08.2004

016_Per_Pixel_LightingOsvetlenie po pixeli. Program vychádza z programu 10, kde bolo taktiež per-pixel osvetlenie. V tomto programe však využívam možnosti pixel shader-ov. V programe je osvetlenie ambient (okolité), difúzne a zrkadlové (specular). U zrkadlovej zložky je možné nastavovať exponent. Je možné zapnúť cube map normalizáciu. Ďalej je tam útlm svetla (attenuation). Útlm je možné vybrať zo 7 rozdielnych vzorcov. Sú tam rôzne techniky pre výpočet útlmu: cez pixel shader, cez pixel shader s čítaním 1D textúry a cez 3D textúru.

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

zdrojové texty a program – 720kB

Program 15 – ASE Loader

26.07.2004

027_ASE_loader_0Program je až na pár drobností totožný s OpenGL programom 27. Najväčší rozdiel je v spôsobe uloženia vrcholov, u DX sú uložené v špecialnom bufferi (ktorý môže byť v pamäti grafickej karty), ale u OpenGL sú v pamäti programu.
Súbory ase vytvara 3ds max ako ASCII scene export. Je to textový formát. Všeobecne majú textové formáty oproti binárnym tú výhodu, že ich dáta sú uložené 027_ASE_loader_1textovým popisným spôsobom a preto nie je problém importovať potrebné časti so súboru. Textové súbory sú zase väčšie a pomalšie sa načítavajú. Načítanie ase súboru som urobil, preto lebo 3ds max exportuje veľa rôznych dát, pričom načítavať ich s 3ds súboru je obtiažne, lebo poriadny popis neexistuje. Čítať zvyšok príspevku »

Program 14 – Bumped Cubic Environment Mapping

20.02.2004

014_Bumped_Cubic_Environment_Mapping_1014_Bumped_Cubic_Environment_Mapping_2

zdrojové texty a program – 810kB

Program 13 – Dynamický cube mapping

20.02.2004

023_Cube_MappingPre cube mapping platí, že cube map textúra sa dá jednoducho vyrenderovať. Stačí pre každý smer vykresliť okolie pri nastavenej perspektíve 90 stupňov a skopírovať na príslušnú časť cube mapy. Môj program predstavuje dynamický cube mapping kde lietadlo oblietava zrkadlový predmet.

zdrojové texty a program – 670kB