Hlavne menu We are sorry, but magazine AMMO is suspended. Here is just read-only access to the articles archive. Some features are removed because they were outdated, pointless in read-only (voting and pools), or it was missused by spammers (comments) etc. Now the webpages aren't maintained so when something will get broken most probably it won't be fixed at all. If you liked our magazine then please make donation with paypal so we can pay for traffic on this server.

TOP Výuka
01 Maľované krížovky 103 bodov
02 OpenGL, lákadlo 38 bodov
03 MySQL (+ použitie Visual C++ a PHP) 28 bodov
04 OpenGL, časť 1 21 bodov
05 Huffmanove kódovanie 19 bodov
06 Pascal, časť 1 18 bodov
07 Ako tlačiť s HP 16 bodov
08 Základy HTML časť 2 16 bodov
09 Základy HTML časť 3 13 bodov
10 Hry pre nenáročných + zdrojáky 10 bodov
11 OpenGL, úvod 8 bodov
12 Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0 7 bodov
13 OpenGL – Intermezzo 1 7 bodov
14 OpenGL povinná literatúra 6 bodov
15 Základy HTML časť 1 6 bodov
Najnovsie clanky
Kvalitné služby podľa skúseností iných - TopSlužby.sk
LOTR - Dve veže - Parodia - Scénka 2. časť
Neverwinter nights
Children Of Bodom-Hatebreeder
Kult Duny - 6. časť (Bonus)
Kult Duny - 5. časť (Filmy, Hry)
Dobré ráno. (morc certa, hora incerta...)
Kult Duny - 4. časť (Knihy 2/2)
Stretnutie Spoločenstva Tolkiena
GRAVE DIGGER – Knights Of The Cross
Kult Duny - 3. časť (Knihy 1/2)
Kult Duny - 2. časť (Pojmy)
Kult Duny - 1. časť (Úvod)
LOTR - Dve veže - Parodia - Scénka
Jackass
Vsetky clanky
Airsoft - Specnaz [4 clanky]
Básne [6 clankov]
Fantázia [4 clanky]
Filmy a DVD [51 clankov]
Hardware [10 clankov]
Hry [170 clankov]
Hry, návody [6 clankov]
Hudba [8 clankov]
Internet [7 clankov]
Knihy [6 clankov]
O AMME [4 clanky]
Pandemonium [10 clankov]
Poviedky [14 clankov]
Programy [18 clankov]
Rôzne [8 clankov]
Technické [3 clanky]
Úvahy [8 clankov]
Výuka [50 clankov]
Ako tlačiť s HP
Algoritmy v grafoch
Fake2
Faktúrka
Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0
Fract
HLSaver
Hry pre nenáročných + zdrojáky
Huffmanove kódovanie
IPicture2 & aggresiveoptimize.h
Maľované krížovky
MySQL (+ použitie Visual C++ a PHP)
OpenGL - GLWnd
OpenGL AMMO Saver
OpenGL povinná literatúra
OpenGL – Intermezzo 1
OpenGL, časť 10
OpenGL, časť 11
OpenGL, časť 12
OpenGL, časť 13
OpenGL, časť 14
OpenGL, časť 15
OpenGL, časť 17
OpenGL, časť 18
OpenGL, časť 7
OpenGL, časť 8
OpenGL, časť 9
Opengl – Cloth Simulation
RenameR
SkinMagic
WinSocket Communication via VC++
Údajové štruktúry
viac...
Zábava [5 clankov]
Zdravie [15 clankov]
Celkovy pocet clankov: 407
OpenGL, časť 16 
Výuka | Dna 23.10.2002 | Johny | 10 znamok, priemer 3.20 | 6107 videni | 1005 WAP videni

V minulej časti som spomínal, že príde hmla... A naozaj aj prišla. Aj keď možno kúsok neskôr, za čo vďačím najmä svojím milým vyučujúcim, ktorí mi vždy našli lepší program ako zabíjať čas. Napr. robiť labáky z fyziky alebo si rátať nejaké trojné integrály, a ťiež čítať obchodný zákonník. Pripomínam, že na 3 školách neštudujem ;o). Ale späť k OpenGL...

Pridanie hmly do OpenGL je úplne ľahké. Vy len poviete, akú hmlu by ste chceli mať a ostatné zariadi OpenGL.

Najprv pár premenných, ako napr. či bol stlačený kláves G, filter, módy hmly a farba hmly. Módy hmly, ako môžete vidieť sú: GL_EXP, GL_EXP2 a GL_LINEAR. Každý má určité zákonitosti podľa ktorých určuje parametre hmly. Vy poviete, kde hmla začne, kde hmla skončí a priebeh hustoty tej hmly je daný práve týmto parametrom. Hmla sa môže zhusťovať rôznymi spôsobmi.

bool gp;
GLuint filter;
GLuint fogMode[]= { GL_EXP, GL_EXP2, GL_LINEAR };
GLuint fogfilter= 0;
GLfloat fogColor[4]= {0.5f, 0.5f, 0.5f, 1.0f};

Tu je maličká zmena, pretože hmla sa niekde končí, a tam kde sa skončí je už presne taká farba, ako ste chceli mať hmlu. A je logické, že aj „za hmlou“ by mala byť taká istá farba, ako je hmla.

Takže si inicializujeme našu hmlu

glClearColor(0.5f,0.5f,0.5f,1.0f);

glFogi(GL_FOG_MODE, fogMode[fogfilter]);
glFogfv(GL_FOG_COLOR, fogColor);
glFogf(GL_FOG_DENSITY, 0.35f);
glHint(GL_FOG_HINT, GL_DONT_CARE);
glFogf(GL_FOG_START, 1.0f);
glFogf(GL_FOG_END, 5.0f);
glEnable(GL_FOG);

glFogi nastavuje niektoré parametre hmly, napr. jej typ, ktorý môže byť jedným z vyššie uvedených. FOG_COLOR je jej farba. Určíme začiatok, koniec a nakoniec hmlu zapneme.

GL_EXP – nie práve najlepší efekt, ale vraj lepší pre staršie počítače
GL_EXP2 – trošku lepšie
GL_LINEAR – a nakoniec najlepší mód, treba si vyskúšať, ktorý vám najviac sedí

Nakoniec ešte drobné zmeny v závere kódu a hmla je na svete.


if (keys['G'] && !gp)
{
gp=TRUE;
fogfilter+=1;
if (fogfilter>2)
{
fogfilter=0;
}
glFogi (GL_FOG_MODE, fogMode[fogfilter]);
}
if (!keys['G'])
{
gp=FALSE;
}

Ako samy vidíte, tak fakt tu nie je veľmi o čom hovoriť. Pre všetky možné tipy, triky, nastavenia si pozrite help v MSDN, kde nájdete komplet parametre + k niektorým aj vyjadrenie v matemat. funkciách ;o) pre matematických fanatikov.


ako tradične zdroják je tu:
http://www.softsklad.host.sk/opengl/lesson16.zip


Najnovsie clanky od tohto redaktora
Podobne clanky