J000 – šum
18.10.2004
18.10.2004
Kvôli zadaniu v škole som si urobil vlastný 3D renderer v jave. Programy kreslia všetko softvérovo. Nevyužívam OpenGL, alebo Direct3D prístupné cez rozširujúce knižnice. Nepoužívam Java3D.
21.09.2004
Offset 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 »
15.09.2004
Jedná 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.
13.09.2004
Program 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ôsobom 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 »
23.08.2004
Osvetlenie 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.
08.08.2004
Jedná 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.
Vyžaduje: WGL_ARB_pbuffer, WGL_ARB_pixel_format a WGL_ARB_render_texture.
26.07.2004
Program 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é textový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 »
16.04.2004