Zanir » OpenGL

Archív z ‘OpenGL’ Kategórie

Program 11 – Blending

25.05.2002

011_blendingBlending – mieša (kombinuje) to čo je už nakreslené s tým čo sa bude kresliť. Blending zapíname a vypíname pomocou glEnable(GL_BLEND); a glDisable(GL_BLEND); Spôsob miešania nastavujem funkciou glBlendFunc( source factor, destination factor );
Source factor – ovplyvňuje to čo sa bude kresliť
Destination factor – ovplyvňuje to čo už je nakreslené (čo je vo frame buffery)
Každý parameter môže nadobúdať veľa hodnôt preto tento program vám a aj mne môže uľahčiť pochopenie ako to pracuje a čo to dokáže.
Ešte dodám, že existujú rozšírenia ktoré umožňujúaj iné miešania:
GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_blend_logic_op, GL_NV_blend_square

zdrojové texty (bez jpeg.lib) a program – 250kB

Program 10 – Multi-texturing

25.05.2002

010_multitexturingMulti-texturing – textúrovanie naraz z dvoch textúr. Používame dve textúrovacie jednotky. Každá pracuje s jednou textúrov. Pre každu textúru zadávame zvlášť textúrovacie koordinacie. To umožňuje používanie tzv. lightmap – textúr, ktoré vyjadrujú osvetlenie textúry. Napr. v Quake 3, keď niekto vystrelí steny okolo letiacej strely sa osvetľujú.Ďalšie použitie multi-texturingu je na bump-mapping.

Keď chceme používať multitexturing v OpenGL musíme zistiť či to grafická karta podporuje. Základné rozšírenie, ktoré vyjadruje podporu multitexturingu je GL_ARB_multitexture. Ďalšie rozšírenie, ktoré vyjadruje ako môžme textúry kombinovať je GL_ARB_texture_env_add. Medzi dalšie rozšírenia týkajúce sa multitexturingu patria:
GL_ARB_texture_env_combine – obsahuje veľa typov miešania.
GL_ARB_texture_env_dot3

zdrojové texty (s jpeg.lib) a program – 262 kB

Program 9 – vyšková mapa

21.04.2002

009_fxz_surfaceHeight map – výšková map. Pomocou obrázku, ktorý vyjadruje výšku ako intenzitu farby (jas) sa kreslí terén. Keďže terén má veľa trojuholníkov a vykreslovať celý terén je pomalé urobil som to tak, aby sa vykresľovalo iba to čo je v zornom uhle.
Keďže rýchlosť vykresľovania závisí od metódy akou sa zadávajú vrcholy do OpenGL urobil som tento testovací program.

zdrojové texty a program – vyšková mapa 313 kB

Program 8 – rotačné plochy

09.01.2002

008_rotated_surfaceKreslenie rotačných plôch : valec, kužel, guľa, jednodielny rotačný hyperboloid, anuloid, rotačny elipsoid, rotačny paraboloid, rotovaná funkcia sinus, rotovaná Bezierová krivka.
Všetky plochy sú texturované, a sú plynule osvetlené (pre každý bod je vypočítaný normalový vektor). Riadiacu krivku, t.j. krivku, ktorá rotuje je možné zadať podobne ako v programe 7.
Plochy sú animované – plynule sa meniace.

zdrojové texty a program – 111kB

Program 7 – modelovanie kriviek

05.01.2002

000_ZakladPomocou programu sa dajú modelovať Fergusonové a Bézierové krivky. Fergusonova krivka je interpolačná čiara, to znamená, že prechádza všetkými uzlovými bodmi. Bézierová krivka je aproximačná čiara, ktorá sleduje tvar zadanej lomenej čiary.

zdrojové texty a program – 51kB

Program 6 – 2D krivky

05.01.2002

000_ZakladProgram nakreslí:
Bézierové krivky, kružnicu, elipsu, parabolu, hyperbolu, ortocykloidu, epicykloidu, hypocykloidu, evolventu kružnice, Lemniskátu Bernoulliho, Descartesov list, Archimedovu špirálu.

zdrojové texty a program – 58kB

Program 5 – Vykresľovanie základných 3D objektov

05.01.2002

000_ZakladVšetky tieto objekty sú kreslené pomocou glu (OpenGL Utility library).

zdrojové texty a program – 99kB

Program 4 – Používanie dispaly listu a hmla

05.01.2002

000_ZakladDisplay list je zoznam operacií, ktoré sa majú vykonať keď sa display list zavolá. Vykresľovanie pomocou diplay listu je rýchlejšie ako priame vykresľovanie.

zdrojové texty a program – 96kB

Program 3 – Svetlo a pohyb v priestore

05.01.2002

000_ZakladPre osvetlenie sú dôležité vektory kolmé na osvetľované plochy (normálové vektory). Podľa ich smeru sa vypočítavá osvetlenie. Program vykreslí osvetlenú kocku, a to dvomi spôsobmi:
Prvý (kocka v ľavo) jeden normálový vektor pre jednu stenu.
Druhý (kocka v pravo) pre každý vrchol jeden normálový vektor. Osvetlenie je lineárne vytienované po ploche kocky.

zdrojové texty a program – 95kB

Program 2 – Bitmapový font a FPS

05.01.2002

000_ZakladPo stlačení klávesy h zobrazíte Help (pomoc). To platí pre všetky programy od tohto.

zdrojové texty a program – 47kB