Neza°azenΘ
22.9.2003Analytickß geometrie(Neza°azenΘ)
Tento Φlßnek vychßzφ z m²ch zßpisk∙ do matematiky z druhΘho roΦnφku na st°ednφ Ükole. Jo, na diktovßnφ byla Wakuovka v₧dycky dobrß... Tehdy jsem moc nechßpal k Φemu mi tento obor matematiky v∙bec bude, ale kdy₧ jsem se zaΦal v∞novat OpenGL, zßhy jsem pochopil. Zkuste si vzφt nap°φklad 27. lekci NeHe Tutorißl∙. Bez znalostφ 3D matematiky nemßte Üanci. Doufßm, ₧e vßm tento Φlßnek pom∙₧e alespo≥ se zßklady a pochopenφm princip∙.
Autor: Michal Turek - Woq

Visual C++
10.11.2002AfxRegisterWndClass(Visual C++)
MFC funkce, kterß zjednoduÜuje registraci t°φdy okna.

10.11.2002CFileDialog(Visual C++)
T°φda dialogu otev°φt/ulo₧it.

10.11.2002CRectTracker(Visual C++)
T°φda zapouzd°ujφcφ takovΘ ty obdΘlnφky, kterΘ se pou₧φvajφ nap°φklad k zm∞n∞ velikosti obrßzk∙ ta₧enφm myÜi.

10.11.2002CRgn(Visual C++)
T°φda pro prßci s libovoln∞ tvarovan²mi 2D oblastmi. (Zapouzd°uje API handle HRGN.)

10.11.2002CWnd::Create(Visual C++)
Funkce pro vytvo°enφ okna.

10.11.2002CWnd::Invalidate(Visual C++)
Funkce pro vyvolßnφ p°ekreslenφ okna. Umo₧≥uje p°ekreslenφ bez smazßnφ p°edchozφho obsahu, co₧ je u₧iteΦnΘ pro zabrßn∞nφ blikßnφ.

10.11.2002CWnd::ShowWindow(Visual C++)
Funkce pro zm∞nu zobrazenφ okna.

10.11.2002Custom controls - trochu jinak(Visual C++)
Custom controls jsou ve Visual C++ implementovßny tak, ₧e se s nimi p°φliÜ dob°e nepracuje (aspo≥ m∞ ne). Tady najdete zp∙sob jak to obejφt.

10.11.2002DLL 1 - StatickΘ linkovßnφ(Visual C++)
StatickΘ p°ipojenφ dll knihovny.

10.11.2002DLL 2 - DynamickΘ p°ipojenφ dll knihovny(Visual C++)
Jak p°ipojit dll knihovnu a₧ za b∞hu programu.

10.11.2002DLL 3 - Zdroje(Visual C++)
NaΦφtßnφ zdroj∙ z dll knihovny.

22.9.2003DLL 4 - Kombinace dynamickΘho a statickΘho linkovßnφ(Visual C++)
V minul²ch dφlech jsme si ukßzali jak dynamickΘ tak statickΘ linkovßnφ dll knihoven. Ale co v p°φpad∞, ₧e chceme v jednΘ aplikaci pou₧φt dynmickΘ a v druhΘ statickΘ linkovßnφ tΘ samΘ dll knihovny? Musφme snad mφt dv∞ knihovny obsahujφcφ stejnΘ funkce, kterΘ se liÜφ jen v deklaraci? Nezoufejte. Vytvo°it dll knihovnu, kterou lze p°ipojit jak staticky tak dynamicky je velice snadnΘ. Samoz°ejm∞ platφ stejnΘ omezenφ jako u Φist∞ dynamicky linkovan²ch dll knihoven - nelze exportovat t°φdy.

22.9.2003FPS: Konstantnφ rychlost animace(Visual C++)
FPS je zkratka z poΦßteΦnφch pφsmen slov Frames Per Pixel, kterß by se dala do ΦeÜtiny p°elo₧it jako poΦet snφmk∙ za sekundu. Tato t°i pφsmena jsou spßsou p°i spouÜt∞nφ program∙ na r∙zn²ch poΦφtaΦφch. Vezm∞te si hru, kterou programßtor zaΦßteΦnφk vyvφjφ doma na svΘm poΦφtaΦi o rychlosti, °ekn∞me, Pentium II. Dß ji kamarßdovi, aby se na ni podφval a zhodnotil. Kamarßd mß doma P4, spustφ ji a vÜe je Üφlen∞ rychlΘ. Dφky FPS se toto nikdy nestane, na jakΘmkoli poΦφtaΦi p∙jde hra v₧dy stejn∞ rychle.
Autor: Michal Turek - Woq

10.11.2002Fonty(Visual C++)
Jak pracovat s fonty? JednoduÜe.

22.9.2003Jak vytvo°it okno s pevnou polohou a velikostφ(Visual C++)
Chcete vytvo°it okno s pevnou pozicφ a velikostφ? Zde se dozvφte jak.

28.4.2003Jedinß instance aplikace(Visual C++)
Ukß₧e postup jak zajistit, ₧e urΦitß aplikace pob∞₧φ jen jednou a jak tuto aplikaci upozornit, ₧e byl pokus o jejφ op∞tovnΘ spuÜt∞nφ a p°edat jφ parametry p°φkazovΘ °ßdky z tohoto pokusu.

10.11.2002KlßvesovΘ zkratky(Visual C++)
Jak v MFC zprovoznit klßvesovΘ zkratky i pro jinß ne₧ rßmcovß okna.

27.1.2003Konstantnφ vzßjemnß poloha oken(Visual C++)
Chcete v∞d∞t jak naprogramovat, aby se p°i pohybu jednφm oknem pohlo i jinΘ okno, jako je tomu nap°φklad i u Winampu? V tom p°φpad∞ je tento Φlßnek prßv∞ pro vßs.

19.5.2003Kurz MFC 1.dφl - MFC AppWizard(Visual C++)
Prvnφ dφl uΦebnice MFC. Ukß₧e vßm jak sprßvn∞ nastavit pr∙vodce aby vygeneroval kostru MFC aplikace, kterou pou₧ijeme v dalÜφch dφlech.

19.5.2003Kurz MFC 2.dφl - ClassWizard, zprßvy a jednoduchΘ kreslenφ(Visual C++)
Druh² dφl uΦebnice MFC. Ukß₧e vßm jak v MFC odchytßvat zprßvy a jak kreslit do okna Φßry.

10.6.2003Kurz MFC 3.dφl - Dokument(Visual C++)
T°etφ dφl uΦebnice MFC. Dozvφte se jak funguje vytvß°enφ nov²ch dokument∙ a jejich uklßdßnφ a naΦφtßnφ.

22.9.2003Kurz MFC 4.dφl - Menu, panel nßstroj∙ a stavov² °ßdek(Visual C++)
╚tvrt² dφl uΦebnice MFC. Ukazuje zßklady prßce s menu, panelem nßstroj∙ a stavov²m °ßdkem.

22.9.2003Kurz MFC 5.dφl - Dokument podruhΘ, t°φda CString(Visual C++)
V tomto dφle se jeÜt∞ krßtce vrßtφme k dokumentu - podφvßme se jak napsat uklßdßnφ a naΦφtßnφ pomocφ funkcφ pro prßci se soubory na kterΘ jsme zvyklφ a jak jednoduÜe p°idat kontrolu p°i ukonΦenφ aplikace zda byl dokument ulo₧en. V druhΘ Φßsti se podφvßme na nejlepÜφ t°φdu z celΘho MFC - CString, kterß slou₧φ k prßci s textov²mi °et∞zci.

22.9.2003Kurz MFC 6.dφl - Dialogy I(Visual C++)
V tomto dφle se koneΦn∞ podφvßme na dialogy. Vytvo°φme si aplikaci jejφ₧ hlavnφ okno bude dialog, p°idßme do nφ druh² dialog, kter² se potom nauΦφme zobrazovat jako modßlnφ i nemodßlnφ a samoz°ejm∞ nezapomeneme na t°etφ typ dialogu MessageBox. K tomu vyu₧ijeme prvnφ z dialogov²ch prvk∙ - tlaΦφtko.

10.12.2002Lad∞nφ 1 - makra(Visual C++)
V tomto Φlßnku se dozvφte n∞co o lad∞nφ ve Visual C++. ZaΦneme ladφcφmi makry.

7.1.2003Lad∞nφ 2 - breakpointy a krokovßnφ(Visual C++)
PokraΦovßnφ Φlßnku o lad∞nφ. Dozvφte se jak nastavit breakpointy pro p°epnutφ do debugeru a jak debuger ovlßdat.

10.11.2002Mapovacφ m≤dy(Visual C++)
U₧ivatelskΘ sou°adnice v okn∞.

9.3.2003NaΦtenφ a zobrazenφ PCX(Visual C++)
Komentovan² zdrojov² k≤d pro naΦtenφ a zobrazenφ obrßzk∙ typu PCX.

10.11.2002Pam∞¥ov∞ mapovanΘ soubory(Visual C++)
Pam∞¥ov∞ mapovanΘ soubory umo₧≥ujφ pracovat se souborem jako by to byla pam∞¥.

7.1.2003Plynulß animace v MFC(Visual C++)
Nevyhovuje vßm frekvence p°ekreslovßnφ dosa₧itelnß pomocφ timeru? V tom p°φpad∞ si p°eΦt∞te Φlßnek, kde zjistφte jak tuto frekvenci podstatn∞ zv²Üit.

27.1.2003Plynulß animace v MFC - 2. dφl(Visual C++)
Druh² dφl Φlßnku o tom jak zrychlit animaci. Tentokrßt se pou₧φvß vlßken. V Φlßnku jsou dv∞ modifikace tΘto metody. Prvnφ je asi 2,75 krßt rychlejÜφ ne₧ timer, co₧ u₧ b²vß dostateΦnΘ a druhß 1608 krßt rychlejÜφ, co₧ je asi polovina rychlosti dosa₧itelnΘ pomocφ metody z p°edchozφho dφlu.

3.2.2003Plynulß animace v MFC - 3. dφl(Visual C++)
Jestli jst u₧ zaΦali pou₧φvat postupy z minul²ch dvou dφl∙, mo₧nß jste si vÜimli dvou chyb. Ta prvnφ nenφ vß₧nß a pouze znep°φjemnφ ₧ivot programßtorovi. Zkrßtka a jednoduÜe pokud podle mΘho nßvodu z prvnφho dφlu p°epφÜete funkci Run, p°estanou vßm ve vaÜφ aplikaci fungovat klßvesovΘ zkratky (accelerators). Ta druhß je mnohem horÜφ a pravd∞podobn∞ na ni p°ijdete teprve a₧ zaΦnete testovat svou aplikaci na jinΘm PC. Pokud podle mΘho nßvodu zßrove≥ s p°ekreslenφm p°epoΦφtßvßte i pozice vykreslovan²ch objekt∙ tak rychlost jejich pohybu bude zßviset na ryhclosti PC. Tj. na n∞jakΘm starÜφm PC vßm hra p∙jde tou sprßvnou rychlostφ, a kdy₧ ji spustφte na n∞jakΘm extrav²konΘm poΦφtaΦi tak ani nebudete staΦit sledovat co se na obrazovce d∞je. (Jestli pamatujete tak stejn² problΘm byl i s hrami pro DOS.) Zde se dozvφte jak tyto chyby odstranit.

3.2.2003P°esnΘ m∞°enφ Φasu(Visual C++)
Chcete v∞d∞t jak m∞°it dΘlku provßd∞nφ k≤du s p°esnostφ na milisekundy a p°esn∞ji? Pak je tento Φlßnek prßv∞ pro vßs.

10.11.2002Rozd∞lenφ okna I(Visual C++)
Rozd∞lenφ okna na n∞kolik Φßstφ pomocφ t°φdy CSplitterWnd.

10.11.2002Rozd∞lenφ okna II(Visual C++)
D∞lenφ oken systΘmem ud∞lej si sßm.

10.11.2002SHFileOperation(Visual C++)
Funkce, kterß zkopφruje/p°esune/sma₧e soubory a vyvolß standartnφ dialog zobrazujφcφ pr∙b∞h operace.

22.9.2003Sta₧enφ souboru z internetu(Visual C++)
Pot°ebujete ve vaÜem programu z internetu stßhnout n∞jak² soubor na sv∙j disk? Potom je tento Φlßnek pro vßs. Formou okomentovanΘho zdrojovΘho k≤du vßm ukß₧u jak na to. Zdrojov² k≤d je p°evzat z anglick²ch strßnek http://www.visualcpp.net

10.11.2002StrukturovanΘ ·lo₧iÜt∞(Visual C++)
Strukturovanß ·lo₧iÜt∞ umo₧≥ujφ pracovat se soubory jako by to byly adresß°e.

10.11.2002Timer(Visual C++)
Jak pou₧φt timer.

27.1.2003Vlßkna 1 - pracovnφ vlßkna(Visual C++)
Najdete zde ty nejzßkladn∞jÜφ informace o pracovnφch vlßknech a odkazy kde hledat vφce.

10.11.2002VφcenßsobnΘ Üablony dokument∙(Visual C++)
Jak vytvo°it aplikaci, kterß pracuje s n∞kolika typy dokument∙.

10.11.2002Zm∞na kurzoru(Visual C++)
Jak zm∞nit kurzor za b∞hu aplikace a pro urΦitΘ okno.

10.11.2002Zm∞na rozliÜenφ obrazovky(Visual C++)
Pokud vßÜ program pot°ebuje urΦitΘ natavenφ obrazovky, nenφ to problΘm.

Zprßvy Windows
10.11.2002Mapa zprßv(Zprßvy Windows)
Specialita MFC. Zp°ehled≥uje odchytßvßnφ zprßv a hlavn∞ s nφ pracuje ClassWizard.

10.11.2002RegisterWindowMessage(Zprßvy Windows)
Funkce pro registraci zprßv.

10.11.2002Rozsahy hodnot zprßv(Zprßvy Windows)
Popisuje jakΘ hodnoty mohou nab²vat zprßvy windows a pro co by jste m∞li kterΘ hodnoty pou₧φvat.

10.11.2002WM_COMMAND(Zprßvy Windows)
Zprßvy od ovlßdacφch prvk∙ (tlaΦφtek, editaΦnφch °ßdk∙,...).

10.11.2002WM_COPYDATA(Zprßvy Windows)
Zprßva pou₧itß pro kopφrovßnφ dat mezi okny.

10.11.2002WM_CREATE(Zprßvy Windows)
Prvnφ zprßva poslanß po vytvo°enφ okna.

10.11.2002WM_DISPLAYCHANGE(Zprßvy Windows)
Zprßva o zm∞n∞ rozliÜenφ a poΦtu barev obrazovky.

10.11.2002WM_LBUTTONDBLCLK(Zprßvy Windows)
Dvojklik lev²m tlaΦφtkem myÜi.

10.11.2002WM_LBUTTONDOWN(Zprßvy Windows)
Zprßva p°i stisknutφ levΘho tlaΦφtka myÜi.

10.11.2002WM_LBUTTONUP(Zprßvy Windows)
Uvoln∞nφ levΘho tlaΦφtka myÜi.

10.11.2002WM_MOUSEMOVE(Zprßvy Windows)
Zprßva vyvolanß p°i pohybu myÜi nad oknem.

22.9.2003WM_MOUSEWHEEL(Zprßvy Windows)
Chct∞li by jste v∞d∞t jak ve vaÜφ aplikaci zprovoznit rolovacφ koleΦko na myÜi. Je to jednoduchΘ. Pou₧ijte tuto zprßvu.

10.11.2002WM_NCDESTROY(Zprßvy Windows)
┌pln∞ poslednφ zprßva posφlanß oknu.

10.11.2002WM_PAINT(Zprßvy Windows)
Popis zprßvy WM_PAINT, kterß se volß poka₧dΘ, kdy₧ je t°eba p°ekreslit okno.

10.11.2002WM_RBUTTONDBLCLK(Zprßvy Windows)
Dvojklik prav²m tlaΦφtkem myÜi.

10.11.2002WM_RBUTTONDOWN(Zprßvy Windows)
Zprßva p°i stisknutφ pravΘho tlaΦφtka myÜi.

10.11.2002WM_RBUTTONUP(Zprßvy Windows)
Uvoln∞nφ pravΘho tlaΦφtka myÜi.

10.11.2002WM_SYSCOMMAND(Zprßvy Windows)
Popis zprßvy WM_SYSCOMMAND, kterß se volß nap°φklad, kdy₧ stisknete tlaΦφtko pro maximalizaci, minimalizaci, zav°enφ okna atd.

10.11.2002WM_USER(Zprßvy Windows)
U₧ivatelskΘ zprßvy.

Tipy
22.9.2003Jak opravit nefungujφcφ automatickou kompletaci k≤du (IntelliSense feature)(Tipy)
Pokud vßm nefunguje automatickß kompletace k≤du, zkuste postup z tohoto tipu.

10.11.2002Jak zabrßnit zamrznutφ aplikace b∞hem dlouhΘho cyklu(Tipy)


10.11.2002Povolenφ/zakßzßnφ okna(Tipy)
Jak zaÜednout/odÜednout dialogov² prvek.

Programy
10.12.2002Dependency walker(Programy)
N∞kolik zßkladnφch informacφ o programu, pomocφ kterΘho m∙₧ete zjistit na jakΘ knihovny je vaÜe aplikace propojena.

22.9.2003Error Lookup(Programy)
Nevφte co znamenß k≤d vrßcen² funkcφ GetLastError() a nechce se vßm hledat v MSDN? Potom pou₧ijte tento progrßmek.

10.11.2002Spy++ (1. dφl)(Programy)
U₧iteΦn² program, kter² je souΦßstφ MS Visual C++.

10.11.2002Spy++ (2. dφl)(Programy)
U₧iteΦn² program, kter² je souΦßstφ MS Visual C++.

OpenGL
22.9.2003Jak na Üet°iΦ obrazovky(OpenGL)
U₧ dßvno jsem si cht∞l naprogramovat vlastnφ Üet°iΦ obrazovky. M∞l jsem sice t°φdu CScreenSaverWnd pro MFC, ale ta nepodporovala OpenGL. U NeHe tutorißlu 38 jsem naÜel odkaz na Üet°iΦ obrazovky s podporou OpenGL, kter² napsal Brian Hunsucker. Cht∞l bych mu pod∞kovat, proto₧e na jeho zdrojovΘm k≤du z v∞tÜφ Φßsti stavφ tento Φlßnek.
Autor: Michal Turek - Woq

9.3.2003Kopφrovßnφ okna OpenGL do DIBu(OpenGL)
Formou komentovanΘho zdrojovΘho k≤du se dozvφte jak zkopφrovat okno OpenGL do DIBu.

10.11.2002NEHE 01 - Otevφrßnφ OpenGL okna ve Windows(OpenGL)
V tomto tutorißlu se nauΦφte jak nastavit a vytvo°it OpenGL okno ve Windows. Program, kter² vytvo°φte v tΘto lekci zobrazφ prßzdnΘ okno. Toto okno budete moci p°epnout do fullscreenu a bude zobrazeno dokud nestisknete ESC nebo ho jinak nezav°ete. ╚ernΘ pozadφ nevypadß nic moc, ale pokud pochopφte tuto lekci, tak budete mφt velmi dobr² zßklad pro jakoukoliv dalÜφ prßci, proto₧e je velmi d∙le₧itΘ pochopit, jak OpenGL pracuje, jak probφhß vytvß°enφ okna a takΘ jak napsat jednoduÜe pochopiteln² k≤d.

10.11.2002NEHE 02 - Vytvß°enφ troj·helnφk∙ a Φty°·helnφk∙(OpenGL)
Zdrojov² k≤d z prvnφ lekce trochu upravφme, aby program vykreslil troj·helnφk a Φtverec. Vφm, ₧e si asi myslφte, ₧e takovΘto vykreslovßnφ je banalita, ale a₧ zaΦnete programovat pochopφte, ₧e orientovat se ve 3D prostoru nenφ a₧ tak jednoduchΘ na p°edstavivost. A prßv∞ jakΘkoli vytvß°enφ objekt∙ v OpenGL zßvisφ na troj·helnφcφch a Φtvercφch. Pokud pochopφte tuto lekci mßte nap∙l vyhrßno. Tak₧e piln∞ studujte.

10.11.2002NEHE 03 - Barvy(OpenGL)
S jednoduch²m rozÜφ°enφm znalostφ ze Φtenφ druhΘ lekce budete moci efektn∞ pou₧φvat barvy. NauΦφte se, jak o plochΘm vybarvovßnφ (Φtverec), tak i o barevn²ch p°echodech (troj·helnφk). Barvy rozzß°φ vzhled aplikace a tφm spφÜe zaujmou divßka.

10.11.2002NEHE 04 - Rotace(OpenGL)
Zde se nauΦφte, jak otßΦet objekt okolo os. Troj·helnφk se bude otßΦet kolem ypsilonovΘ a Φtverec kolem x-ovΘ osy. Je jednoduchΘ vytvo°it scΘnu z polygon∙. P°idßnφ pohybu ji p∞kn∞ o₧ivφ. V dalÜφch lekcφch se nauΦφte, jak otßΦet objekt kolem bodu na obrazovce, co₧ ho p°im∞je k "randomovΘmu" pohybu po monitoru a ne okolo svΘ osy.


10.11.2002NEHE 05 - PevnΘ objekty(OpenGL)
RozÜφ°enφm poslednφ Φßsti vytvo°φme skuteΦnΘ 3D objekty. Narozdφl od 2D objekt∙ ve 3D prostoru. Provedeme to p°idßnφm levΘ, zadnφ a pravΘ strany k troj·helnφku a levΘ, pravΘ, zadnφ, hornφ a dolnφ strany ke Φtverci. Tφm zm∞nφme troj·helnφk na pyramidu a Φtverec na krychli. Pyramida bude vybarvena barevn²m p°echodem a krychle bude mφt ka₧dou stranu jinou barvou.


10.11.2002NEHE 06 - Textury(OpenGL)
Zde se nauΦφte, jak namapovat bitmapov² obrßzek na krychli. Pou₧ijeme zdrojovΘ k≤dy z prvnφ lekce, proto₧e je urΦit∞ jednoduÜφ (a p°ehledn∞jÜφ) zaΦφt s prßzdn²m oknem ne₧ slo₧it∞ upravovat p°edchozφ lekci.

10.11.2002NEHE 07 - TexturovΘ filtry, osv∞tlenφ, ovlßdßnφ pomocφ klßvesnice(OpenGL)
V tomto dφlu se pokusφm vysv∞tlit pou₧itφ t°φ odliÜn²ch texturov²ch filtr∙. Dßle pak pohybu objekt∙ pomocφ klßvesnice a nakonec aplikaci jednoduch²ch sv∞tel v OpenGL. Nebude se jako obvykle navazovat na k≤d z p°edchozφho dφlu, ale zaΦne se p∞kn∞ od zaΦßtku (skoro).

10.11.2002NEHE 08 - Blending (pr∙hlednost)(OpenGL)
DalÜφ typ specißlnφho efektu v OpenGL je blending. Pou₧φvß se v kombinaci s barvou danΘho pixelu a barvou pixelu vykreslenΘho na obrazovce. Jak se budou barvy kombinovat je urΦeno alfa hodnotou barvy, a/nebo pou₧itou funkcφ. Nab²vß-li alfa 0.0 materißl bude ·pln∞ pr∙hledn², hodnota 1.0 je prav² opak.

10.11.2002NEHE 09 - Pohyb bitmap ve 3D prostoru(OpenGL)
Tento tutorißl vßs nauΦφ pohyb objekt∙ ve 3D prostoru. Dßle pak kreslenφ bitmap bez Φern²ch mφst, zakr²vajφcφch objekty za nimi, jednoduchou animaci a rozÜφ°enΘ pou₧itφ blendingu. Te∩ byste u₧ m∞li rozum∞t OpenGL velmi dob°e. NauΦili jste se vÜe od nastavenφ OpenGL okna, po mapovßnφ textur za pou₧itφ sv∞tel a blendingu. To byl prvnφ tutorißl pro st°edn∞ pokroΦilΘ. A pokraΦujeme dßle...

10.11.2002NEHE 10 - Vytvo°enφ 3D sv∞ta a pohyb v n∞m(OpenGL)
Vφtejte ve fam≤znφ desßtΘ lekci. Do nyn∞jÜka jsme programovali otßΦejφcφ se kostku nebo pßr hv∞zd. Mßte (m∞li byste mφt :) zßkladnφ pocit o 3D. Ale rotujφcφ krychle asi nejsou to nejlepÜφ k tvorb∞ dobr²ch deathmatchov²ch protivnφk∙! NeΦekejte a zaΦn∞te s Quakem IV jeÜt∞ dnes! Tyto dny pot°ebujete k velkΘmu, komplikovanΘmu a dynamickΘmu 3D sv∞tu s pohybem do vÜech sm∞r∙, skv∞l²mi efekty zrcadel, portßl∙, deformacemi a t°eba takΘ vysok²m frameratem. Tato lekce vßm vysv∞tlφ zßkladnφ "strukturu" 3D sv∞ta a pohybu v n∞m.

10.11.2002NEHE 11 - Efekt vlnφcφ se vlajky(OpenGL)
V tΘto lekci se nauΦφte jak pomocφ sinusovΘ funkce animovat obrßzky. Pokud znßte standartnφ Üet°iΦ Windows "LΘtajφcφ 3D objekty" (i on by m∞l b²t programovan² v OpenGL), tak budeme d∞lat n∞co podobnΘho.

10.11.2002NEHE 12 - Display list (p°edvytvo°enΘ objekty)(OpenGL)
Chcete v∞d∞t, jak urychlit vaÜe programy v OpenGL? Jste unaveni z nesmyslnΘho opisovßnφ ji₧ napsanΘho k≤du? Nejde to n∞jak jednoduÜeji? NeÜlo by nap°φklad jednφm p°φkazem vykreslit otexturovanou krychli? Samoz°ejm∞, ₧e jde. Tento tutorißl je urΦen² specißln∞ pro vßs. P°edvytvo°enΘ objekty a jejich vykreslovßnφ jednφm °ßdkem k≤du. Jak snadnΘ...

10.11.2002NEHE 13 - BitmapovΘ fonty(OpenGL)
╚asto kladenß otßzka t²kajφcφ se OpenGL znφ: "Jak zobrazit text?". V₧dycky jde namapovat texturu textu. Bohu₧el nad nφm mßte velmi malou kontrolu. A pokud nejste dob°φ v blendigu, v∞tÜinou skonΦφte smixovßnφm s ostatnφmi obrßzky. Pokud byste cht∞li znßt lehΦφ cestu k v²stupu textu na jakΘkoli mφsto s libovolnou barvou nebo fontem, potom je tato lekce urΦit∞ pro vßs. BitmapovΘ fonty jsou 2D pφsma, kterΘ nemohou b²t rotovßny. V₧dy je uvidφte zep°edu.

10.11.2002NEHE 14 - 3D fonty(OpenGL)
BitmapovΘ fonty nestaΦφ? Pot°ebujete kontrolovat pozici textu i na ose z? Cht∞li byste fonty s hloubkou? Pokud znφ vaÜe odpov∞∩ ano, pak jsou 3D fonty nejlepÜφ °eÜenφ. M∙₧ete s nimi pohybovat na ose z a tφm m∞nit jejich velikost, otßΦet je, prost∞ d∞lat vÜe, co nem∙₧ete s obyΦejn²mi. UrΦit∞ jsou nejlepÜφ volbou ke hrßm a dem∙m.

10.11.2002NEHE 15 - Mapovßnφ textur na fonty(OpenGL)
Po vysv∞tlenφ bitmapov²ch a 3D font∙ v p°edchozφch dvou lekcφch jsem se rozhodl napsat lekci o mapovßnφ textur na fonty (nebo jakΘkoli jinΘ objekty). Jednß se o tzv. automatickΘ generovßnφ koordinßt∙ textur. Po doΦtenφ tΘto lekce budete um∞t namapovat texturu opravdu na cokoli - zcela snadno a jednoduÜe.

10.11.2002NEHE 16 - Mlha(OpenGL)
Tato lekce rozÜi°uje pou₧itφm mlhy lekci 7. NauΦφte se pou₧φvat t°φ r∙zn²ch filtr∙, m∞nit barvu a nastavit oblast p∙sobenφ mlhy (v hloubce). Velmi jednoduch² a "efektnφ" efekt.

10.11.2002NEHE 17 - 2D fonty z textur(OpenGL)
V tΘto lekci se nauΦφte, jak vykreslit font pomocφ texturou omapovanΘho obdΘlnφku. Dozvφte se takΘ, jak pou₧φvat pixely mφsto jednotek. I kdy₧ nemßte rßdi mapovßnφ 2D znak∙, najdete zde spoustu nov²ch informacφ o OpenGL.

17.11.2002NEHE 18 - Quadratics(OpenGL)
P°edstavuje se vßm bßjeΦn² sv∞t quadratic∙. Jednφm °ßdkem k≤du snadno vytvß°φte komplexnφ objekty typu koule, disku, vßlce ap. Pomocφ matematiky a trochy plßnovßnφ lze snadno morphovat jeden do druhΘho.

7.1.2003NEHE 19 - ╚ßsticovΘ systΘmy(OpenGL)
Cht∞li jste u₧ n∞kdy naprogramovat exploze, vodnφ fontßny, planoucφ hv∞zdy a jinΘ skv∞lΘ efekty, nicmΘn∞ k≤dovßnφ Φßsticov²ch systΘm∙ bylo bu∩ p°φliÜ t∞₧kΘ nebo jste v∙bec nev∞d∞li, jak na to? V tΘto lekci zjistφte, jak vytvo°it jednoduch², ale dob°e vypadajφcφ Φßsticov² systΘm. Extra p°idßme duhovΘ barvy a ovlßdßnφ klßvesnicφ. TakΘ se dozvφte, jak pomocφ triangle stripu jednoduÜe vykreslovat velkΘ mno₧stvφ troj·helnφk∙.

3.2.2003NEHE 20 - Maskovßnφ(OpenGL)
╚ernΘ okraje obrßzk∙ jsme dosud o°ezßvali blendingem. AΦkoli je tato metoda efektivnφ, ne v₧dy transparentnφ objekty vypadajφ dob°e. Modelovß situace: vytvß°φme hru a pot°ebujeme celistv² text nebo zak°iven² ovlßdacφ panel, ale p°i blendingu scΘna prosvφtß. NejlepÜφm °eÜenφm je maskovßnφ obrßzk∙.

22.4.2003NEHE 21 - P°φmky, antialiasing, Φasovßnφ, pravo·hlß projekce, zßkladnφ zvuky a jednoduchß hernφ logika(OpenGL)
Prvnφ opravdu rozsßhl² tutorißl - jak u₧ plyne z gigantickΘho nßzvu. Doufejme, ₧e takovß spousta informacφ a technik dokß₧e ud∞lat Ü¥astn²m opravdu ka₧dΘho. Strßvil jsem dva dny k≤dovßnφm a kolem dvou t²dn∙ psanφm tohoto HTML souboru. Pokud jste n∞kdy hrßli hru Admiar, lekce vßs vrßtφ do vzpomφnek. ┌kol hry sestßvß z vypln∞nφ jednotliv²ch polφΦek m°φ₧ky. Samoz°ejm∞ se musφte vyh²bat vÜem nep°ßtel∙m.

22.4.2003NEHE 22 - Bump Mapping & Multi Texturing(OpenGL)
Prav² Φas vrßtit se zpßtky na zaΦßtek a zaΦφt si opakovat. NovßΦk∙m v OpenGL se absolutn∞ nedoporuΦuje! Pokud, ale mßte odvahu, m∙₧ete zkusit dobrodru₧stvφ s nadupanou grafikou. V tΘto lekci modifikujeme k≤d z ÜestΘ lekce, aby podporoval hardwarov² multi texturing p°es opravdu skv∞l² vizußlnφ efekt nazvan² bump mapping.

22.4.2003NEHE 23 - Mapovßnφ textur na kulovΘ quadratiky(OpenGL)
Tento tutorißl je napsßn na bßzi lekce 18. V lekci 15 (Mapovßnφ textur na fonty) jsem psal o automatickΘm mapovßnφ textur. Vysv∞tlil jsem jak m∙₧eme poprosit OpenGL o automatickΘ generovßnφ texturov²ch koordinßt∙, ale proto₧e lekce 15 byla celkem skromnß, rozhodl jsem se p°idat mnohem vφce detail∙ o tΘto technice.

22.9.2003NEHE 24 - V²pis OpenGL rozÜφ°enφ, o°ezßvacφ testy a textury z TGA obrßzk∙(OpenGL)
V tΘto lekci se nauΦφte, jak zjistit, kterß OpenGL rozÜφ°enφ (extensions) podporuje vaÜe grafickß karta. VypφÜeme je do st°edu okna, se kter²m budeme moci po stisku Üipek rolovat. Pou₧ijeme klasick² 2D texturov² font s tφm rozdφlem, ₧e texturu vytvo°φme z TGA obrßzku. Jeho nejv∞tÜφmi p°ednostmi jsou jednoduchß prßce a podpora alfa kanßlu. Odbourßnφm bitmap u₧ nebudeme muset inkludovat knihovnu glaux.

22.9.2003NEHE 25 - Morfovßnφ objekt∙ a jejich nahrßvßnφ z textovΘho souboru(OpenGL)
V tΘto lekci se nauΦφte, jak nahrßt sou°adnice vrchol∙ z textovΘho souboru a plynulou transformaci z jednoho objektu na druh². Nezam∞°φme se ani tak na grafick² v²stup jako spφÜe na efekty a pot°ebnou matematiku okolo. K≤d m∙₧e b²t velice jednoduÜe modifikovßn k vykreslovßnφ linkami nebo polygony.

22.9.2003NEHE 26 - Odrazy a jejich o°ezßvßnφ za pou₧itφ stencil bufferu(OpenGL)
Tutorißl demonstruje extrΘmn∞ realistickΘ odrazy za pou₧itφ stencil bufferu a jejich o°ezßvßnφ, aby "nevystoupily" ze zrcadla. Je mnohem vφce pokrokov² ne₧ p°edchozφ lekce, tak₧e p°ed zaΦßtkem Φtenφ doporuΦuji menÜφ opakovßnφ. Odrazy objekt∙ nebudou vid∞t nad zrcadlem nebo na druhΘ stran∞ zdi a budou mφt barevn² nßdech zrcadla - skuteΦnΘ odrazy.

22.9.2003NEHE 27 - Stφny(OpenGL)
P°edstavuje se vßm velmi komplexnφ tutorißl na vrhßnφ stφn∙. Efekt je doslova neuv∞°iteln². Stφny se roztahujφ, oh²bajφ a zahalujφ i ostatnφ objekty ve scΘn∞. Realisticky se pokroutφ na st∞nßch nebo podlaze. Se vÜφm lze pomocφ klßvesnice pohybovat ve 3D prostoru. Pokud jeÜt∞ nejste se stencil bufferem a matematikou jako jedna rodina, nemßte nejmenÜφ Üanci.

22.9.2003NEHE 28 - Bezierovy k°ivky a povrchy, fullscreen fix(OpenGL)
David Nikdel je osoba stojφcφ za tφmto skv∞l²m tutorißlem, ve kterΘm se nauΦφte, jak se vytvß°ejφ Bezierovy k°ivky. Dφky nim lze velice jednoduÜe zak°ivit povrch a provßd∞t jeho plynulou animaci pouhou modifikacφ n∞kolika kontrolnφch bod∙. Aby byl v²sledn² povrch modelu jeÜt∞ zajφmav∞jÜφ, je na n∞j namapovßna textura. Tutorißl takΘ eliminuje problΘmy s fullscreenem, kdy se po nßvratu do systΘmu neobnovilo p∙vodnφ rozliÜenφ obrazovky.

22.9.2003NEHE 29 - Blitter, nahrßvßnφ .RAW textur(OpenGL)
V tΘto lekci se nauΦφte, jak se nahrßvajφ .RAW obrßzky a konvertujφ se do textur. Dozvφte se takΘ o blitteru, grafickΘ metod∞ p°enßÜenφ dat, kterß umo₧≥uje modifikovat textury potΘ, co u₧ byly nahrßny do programu. M∙₧ete jφm zkopφrovat Φßst jednΘ textury do druhΘ, blendingem je smφchat dohromady a takΘ roztahovat. MaliΦko upravφme program tak, aby v dob∞, kdy nenφ aktivnφ, v∙bec nezat∞₧oval procesor.

22.9.2003NEHE 30 - Detekce kolizφ(OpenGL)
Na podobn² tutorißl jste u₧ jist∞ netrp∞liv∞ Φekali. NauΦφte se zßklady o detekcφch kolizφ, jak na n∞ reagovat a na fyzice zalo₧enΘ modelovacφ efekty (nßrazy, p∙sobenφ gravitace ap.). Tutorißl se vφce zam∞°uje na obecnou funkci kolizφ ne₧ zdrojov²m k≤d∙m. NicmΘn∞ d∙le₧itΘ Φßsti k≤du jsou takΘ popsßny. NeoΦekßvejte, ₧e po prvnφm p°eΦtenφ ·pln∞ vÜemu z kolizφ porozumφte. Je to komplexnφ nßm∞t, se kter²m vßm pomohu zaΦφt.

22.9.2003NEHE 31 - Nahrßvßnφ a renderovßnφ model∙(OpenGL)
DalÜφ skv∞l² tutorißl! NauΦφte se, jak nahrßt a zobrazit otexturovan² Milkshape3D model. Nezdß se to, ale asi nejvφce se budou hodit znalosti o prßci s dynamickou pam∞tφ a jejφm kopφrovßnφ z jednoho mφsta na druhΘ.

22.9.2003NEHE 32 - Picking, alfa blending, alfa testing, sorting(OpenGL)
V tomto tutorißlu se pokusφm zodpov∞d∞t n∞kolik otßzek, na kterΘ jsem denn∞ dotazovßn. Chcete v∞d∞t, jak p°i kliknutφ tlaΦφtkem myÜi identifikovat OpenGL objekt nachßzejφcφ se pod kurzorem (picking). Dßle byste se cht∞li dozv∞d∞t, jak vykreslit objekt bez zobrazenφ urΦitΘ barvy (alfa blending, alfa testing). T°etφ v∞cφ, se kterou si nevφte rady, je, jak °adit objekty, aby se p°i blendingu sprßvn∞ zobrazily (sorting). Naprogramujeme hru, na kterΘ si vÜe vysv∞tlφme.

22.9.2003NEHE 33 - Nahrßvßnφ komprimovan²ch i nekomprimovan²ch obrßzk∙ TGA(OpenGL)
V lekci 24 jsem vßm ukßzal cestu, jak nahrßvat nekomprimovanΘ 24/32 bitovΘ TGA obrßzky. Jsou velmi u₧iteΦnΘ, kdy₧ pot°ebujete alfa kanßl, ale nesmφte se starat o jejich velikost, proto₧e byste je ihned p°estali pou₧φvat. K diskovΘmu mφstu nejsou zrovna ÜetrnΘ. ProblΘm velikosti vy°eÜφ nahrßvßnφ obrßzk∙ komprimovan²ch metodou RLE. K≤d pro loading a hlaviΦkovΘ soubory jsou odd∞leny od hlavnφho projektu, aby mohly b²t snadno pou₧ity i jinde.

22.9.2003NEHE 34 - Generovßnφ terΘn∙ a krajin za pou₧itφ v²ÜkovΘho mapovßnφ textur(OpenGL)
Cht∞li byste vytvo°it v∞rnou simulaci krajiny, ale nevφte, jak na to? Bude nßm staΦit obyΦejn² 2D obrßzek ve stupnφch Üedi, pomocφ kterΘho deformujeme rovinu do t°etφho rozm∞ru. Na prvnφ pohled t∞₧ko °eÜitelnΘ problΘmy b²vajφ Φastokrßt velice jednoduchΘ.

22.9.2003OpenGL okno v dialogu(OpenGL)
Zobrazφme d∞tskΘ OpenGL okno v dialogu a budeme mu p°edßvat hodnoty zφskanΘ z ovlßdacφch prvk∙ (editboxy a radiobuttony). PeriodickΘ p°ekreslovßnφ OpenGL okna zajiÜ¥uje zprßva WM_TIMER - troj·helnφk a Φtverec budou rotovat.
Autor: Michal Turek - Woq

10.11.2002OpenGL v MFC 1(OpenGL)
Tento Φlßnek jsem napsal, kdy₧ jsem s OpenGL zaΦφnal. Popisuje jak inicializovat OpenGL. Ale rad∞ji ne₧ tento Φlßnek doporuΦuji NEHE's OpenGL tutorißly, kterΘ zde takΘ najdete.

10.11.2002OpenGL v MFC 2(OpenGL)
Tento Φlßnek jsem napsal, kdy₧ jsem s OpenGL zaΦφnal. Popisuje jednoduchΘ kreslenφ v OpenGL. Ale rad∞ji ne₧ tento Φlßnek doporuΦuji NEHE's OpenGL tutorißly, kterΘ zde takΘ najdete.

22.9.2003Pomoc, zaΦφnßm(OpenGL)
Vφte, vzpomn∞l jsem si na svΘ zaΦßtky s OpenGL, kdy Φlov∞k nemohl sehnat tΘm∞° ₧ßdnΘ informace o OpenGL, jednoduÜe proto, ₧e ₧ßdnΘ neexistovaly. To byl vlastn∞ d∙vod pro p°eklady NeHe Tutorißl∙ a nßsledn² vznik webu nehe.opengl.cz. Informacφ je u₧ nynφ relativn∞ dost, ale stßle z∙stala otßzka: Kde zaΦφt?
Autor: Michal Turek - Woq

9.3.2003Tisk a nßhled p°ed tiskem OpenGL scΘny v MFC(OpenGL)
V tomto Φlßnku najdete postup jak vytisknout OpenGL scΘnu na tiskßrnu a do nßhledu.

SDL
22.9.2003Knihovna SDL Image(SDL)
UrΦit∞ se vßm nelφbφ mφt vÜechny textury ulo₧enΘ v BMP souborech, kterΘ nejsou zrovna p°ßtelskΘ k mφstu na disku. Bohu₧el SDL ₧ßdn² jin² formßt p°φmo nepodporuje. NicmΘn∞ existuje malΘ rozÜφ°enφ v podob∞ knihovniΦky SDL Image poskytujφcφ funkci IMG_Load(), kterß umφ naΦφst v∞tÜinu pou₧φvan²ch grafick²ch formßt∙.
Autor: Bernard Lidick² - Berny

22.9.2003Vytvo°enφ SDL okna(SDL)
Woq m∞ po₧ßdal, abych napsal tutorißl pro pou₧φvßnφ OpenGL pod knihovnou SDL. Je to m∙j prvnφ tutorißl, tak₧e doufßm, ₧e se bude lφbit. Zkusφme vytvo°it k≤d, kter² bude odpovφdat druhΘ lekci "normßlnφch" tutorißl∙. Zdrojov² k≤d je "oficißlnφ" NeHe port druhΘ lekce do SDL. Pokusφm se popsat, jak se vytvß°φ okno a v∞ci okolo.
Autor: Bernard Lidick² - Berny