Zanir

Program 6 – Emboss bump mapping

04.02.2004

006_bump_mappingPre zlešenie kvality osvetlenia je potrebné osvetlenie po pixeloch. Emboss bump mapping bola prvá realtime-ová technológia, ktorá umožňovala vytvoriť lepšie osvetlenie ako štandardne osvetlenie po vrcholoch. Ešte lepšie osvetlenie sa dá vytvoriť pomocou dot3 bump mapping-u, ktorý na rozdiel od emboss bump mapping-u je matematicky správny. Dot3 bump mapping počíta skalárny súčin normálového vektora uloženého v textúre a vektora k svetlu po pixeli. Emboss bump mapping tento skalárny súčin odhaduje pomocou súčtu dvoch posunutých textúr.

zdrojové texty a program – 640kB
zdrojovy text pre knižnicu jpeglibmm.lib – 200kB

Program 5 – Bitmap font a hmla

18.11.2003

005_Bitmap_font_FogProgram používa bitmapový font t.j. font vytvorený z textúry.
Hmla môže byť počítaná po vrcholoch (vertex fog) a na základe hodnoty hĺbky (zo z-buffra) (table fog). Ja používam hmlu na základe z-buffra.
Hmla može byť:


  • exponenciálna, nastavuje sa hustotou
  • exponenciálna na druhú, nastavuje sa hustotou
  • lineárna, nastavuje sa začiatočnou a koncovou vzdialenosťou

zdrojové texty a program – 180kB

Program 4 – Svetlo a pohyb

18.11.2003

004_Light_MovePre osvetlenie potrebujeme definovať pre každý vertex normálový vektor. Používam smerové svetlo. Pohyb je vytvorený cez rotácie a posunutia.

zdrojové texty a program – 330kB

Program 3 – Font a FPS

18.11.2003

003_Font_FPSV programe využívam font prístupný v D3D, ktorý sa vytvorý volaním funkcie D3DXCreateFont. Ako časovač využívam rýchli časovač prístupný cez funkciu QueryPerformanceCounter.
Keď stlačite h zobrazý sa Help.

zdrojové texty a program – 180kB

Program 2 – Mapovanie textúry

18.11.2003

002_Texture_MappingMapovanie textúry je priradenie textúrovej súradnice bodom v priestore. Vytvorime si vertex buffer, v ktorom jedna položka bude obsahovať pozíciu a textúrové koordinácie. Naplníme vertex buffer a možme kresliť. Pozor suradnícový systém pre textúrové koordinácie je iný ako v OpenGL. Texel (0,0) je vľavo hore, (1,0) je vravo hore, (0,1) je vľavo dole a (1,1) je vpravo hore. Rozdiel oproti OpenGL je, že smer y osi je opačný a y=0 je hore!

zdrojové texty a program – 160kB

Program 1 – Základné primitíva

18.11.2003

001_primitivesAby sme mohli v D3D kresliť, potrebujeme si vytvoriť vertex buffer. Do ňho skopírujeme súradnice vrcholov. Vertex buffer može obsahovať iba položky, ktoré sú uvedené v dokumentácii. Poradie jednotlivých položiek je pevne dané. Ak máme vytvorený vertex buffer môžme z neho, kresliť. Primitívy, ktoré vie kresliť D3D sú: Čítať zvyšok príspevku »

Program 0 – Inicializácia DX

18.11.2003

000_InitializingProgram vytvorí aplikáciu inicializuje, DirectX 8.1 a Direct3D. Nastavenie načítava so súbora init.txt. Program maže okno. Farba mazania okna sa dynamicky mení. Ďalej program vytvorý súbor D3D8caps.txt, v ktorom je zapísané aké veci dané zariadenie zvláda.

zdrojové texty a program – 130kB

DirectX 8.1

16.11.2003

Prečo som začal s DX

DirectX
    Nevýhodov OpenGL je nekompatibilita rozšírení. Konkrétne rozšírenia týkajúce sa pixel shader sú u kariet rôznych výrobcou rôzne a tým nekompatibilné. Čítať zvyšok príspevku »

Program 28 – Voda

30.10.2003

028_waterVoda je vytvárana spojením lomu a odrazu pomocou Fresnelovho vzorca. Pre odraz plati zakon odrazu, ktorý hovorý, že uhol dopadu sa rovná uhlu odrazu. Pre lom platí Shellov zakon, ktorý hovorý: Pomer sínusu uhla dopadu k sínusu uhla lomu je rovný pomeru rýchlosti šírenia vĺn v prostredí 1 a v prostredí 2. Matematicky sin(a1)/sin(a2)=v1/v2=n2/n1. Platí ak v1>v2 potom a1>a2, a ak v1 Pre zobrazovanie lomu a odrazu používam sphere environment mapping, alebo cube environment mapping.

Odporučané rozšírenia: GL_ARB_multitexture, GL_ARB_texture_env_combine a GL_ARB_texture_cube_map.

zdrojové texty a program – 200kB bez jpeglibm.lib

Program 27 – ASE Loader

12.09.2003

027_ASE_loader_0Sú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, 027_ASE_loader_1pričom načítavať ich s 3ds súboru je obtiažne, lebo poriadny popis neexistuje. Ďalšia nevýhoda 3ds je, že neobsahuje všetky informácie ( napr. chybajú normálové vektory).
3ds max obsahuje modul pre výpočet globálneho modelu osvetlenia – radiosity. To umožňuje docieliť veľmi realistické osvetlenie modelov. Čítať zvyšok príspevku »