Články

24.09.2005

Kamera pro 3D svět - Michal Turek

V tomto článku se pokusíme implementovat snadno použitelnou třídu kamery, která bude vhodná pro pohyby v obecném 3D světě, například pro nějakou střílečku - myš mění směr natočení a šipky na klávesnici zajišťují pohyb. Přestože budeme používat maličko matematiky, nebojte se a směle do čtení!

07.09.2005

Procedurálne generovanie terénu - Peter Mindek

Možno ste už počuli o výškových mapách. Sú to také čiernobiele obrázky, pomocou ktorých sa vytvára 3D terén (výška terénu na určitej pozícii je určená farbou zodpovedajúceho bodu na výškovej mape). Najjednoduchšie je výškovú mapu načítať zo súboru a je pokoj. Sú však situácie, ako napr. keď robíte grafické demo, ktoré má byť čo najmenšie, keď príde vhod výškovú mapu vygenerovať procedurálne. Takže si ukážeme ako na to. Ešte snáď spomeniem že čítať ďalej môžu aj tí, ktorí chcú vedieť ako vygenerovať takzvané "oblaky" (niekedy sa tomu hovorí aj plazma), nakoľko tento tutoriál bude z veľkej časti práve o tom.

27.01.2005

Billboarding (přiklápění polygonů ke kameře) - Michal Turek

Každý, kdo někdy programoval částicové systémy, se jistě setkal s problémem, jak zařídit, aby byly polygony viditelné z jakéhokoli směru. Nebo-li, aby se nikdy nestalo, že při natočení kamery kolmo na rovinu částice, nebyla vidět pouze tenká linka. Složitý problém, ultra jednoduché řešení...

22.10.2004

FreeType Fonty v OpenGL a česky - Lukáš Beran - Berka

Chcete používat ve svých programech FreeType Fonty i s českými znaky? Pokud ano, jste na správném místě. Tento článek doplňuje NeHe Tutoriál 43, ve kterém bylo popsáno použití FreeType s OpenGL, ale bohužel bez českých znaků. Použito s laskavým svolením http://programovani.wz.cz/.

25.08.2004

Načítání .3DS modelů - Michal Tuček

V tomto článku si ukážeme, jak nahrát a vykreslit model ve formátu .3DS (3D Studio Max). Náš kód bude umět bez problémů načítat soubory do třetí verze programu, s vyššími verzemi bude pracovat také, ale nebude podporovat jejich nové funkce. Vycházím z ukázkového příkladu z http://www.gametutorials.com/, kde také najdete zdrojové kódy pro C++ (článek je v Delphi).

15.08.2004

Vytvoření OpenGL okna v Delphi - Michal Tuček

Tento článek popisuje vytvoření OpenGL okna pod operačním systémem MS Windows ve vývojovém prostředí Borland Delphi. Já osobně používám Delphi verze 7, ale ani v nižších verzích by neměl být problém vytvořený kód zkompilovat a spustit. Z větší části se jedná o přepis prvního NeHe Tutoriálu z jazyka C/C++ do Pascalu. Takže směle do toho...

11.07.2004

Octree - Michal Turek

Octree (octal tree, oktalový strom) je způsob rozdělování 3D prostoru na oblasti, který umožňuje vykreslit pouze tu část světa/levelu/scény, která se nachází ve výhledu kamery, a tím značně urychlit rendering. Může se také použít k detekcím kolizí.

20.06.2004

Generování planet - Milan Turek

Pokud budete někdy potřebovat pro svou aplikaci vygenerovat realisticky vypadající planetu, tento článek se vám bude určitě hodit - popisuje jeden ze způsobů vytváření nedeformovaných kontinentů. Obvyklé způsoby pokrývání koule rovinnou texturou končí obrovskými deformacemi na pólech. Další nevýhodou některých způsobů je, že výsledek je orientován v nějakém směru. To u této metody nehrozí.

09.05.2004

FAQ: Často kladené dotazy - Michal Turek

Na emailu se mi některé, většinou začátečnické, dotazy neustále opakují, jako příklad lze uvést problémy s knihovnou GLAUX a symbolickou konstantou CDS_FULLSCREEN v Dev-C++. Doufám, že tato stránka trochu sníží zatížení, ale pokud si stále nevíte rady, nebojte se mi napsat. Doufám, že nebude vadit, když sem umístím i ten váš problém.

27.03.2004

Zprovoznění OpenGL v Linuxu (ovladače karty, kompilace) - Michal Turek

Když jsem přibližně před půl rokem (podzim 2003) přecházel z MS Windows® na operační systém Linux, měl jsem relativně velké potíže se zprovozněním OpenGL. Nejedná se sice o nic složitého, nicméně pro tehdy nic nechápajícího Woqa uživatele (analogie na Frantu uživatele :-) to byl naprosto neřešitelný problém.

31.12.2003

Třída kamery a Quaternionu - Michal Turek

Chcete si naprogramovat letecký simulátor? Směr letu nad krajinou můžete měnit klávesnicí i myší... Vytvoříme několik užitečných tříd, která vám pomohou s matematikou, která stojí za definováním výhledu kamery a pak všechno spojíme do jednoho funkčního celku.

13.12.2003

Matice v OpenGL - Radomír Vrána

V tomto článku se dozvíte, jakým způsobem OpenGL ukládá hodnoty rotací a translací do své modelview matice. Samozřejmě nebudou chybět obrázky jejího obsahu po různých maticových operacích.

09.12.2003

Operace s maticemi - Přemysl Jaroš

Zajímali jste se někdy o to, jak fungují OpenGL funkce pracující s maticemi? V tomto článku si vysvětlíme, jak fungují funkce typu glTranslatef(), glRotatef(), glScalef() a jak je případně nahradit vlastním kódem.

01.12.2003

Používáme gluUnProject() - Přemysl Jaroš

Potřebujete transformovat pozici myši na souřadnice v OpenGL scéně a nevíte si rady? Pokud ano, jste na správném místě.

28.10.2003

Timer - Marek Olšák - Eosie

Představte si, že děláte nějaký velký dynamický svět, pro který potřebujete mnoho výpočtů závislých na uplynulém čase (pohyb, rotace, animace, fyzika). Pokud synchronizujete klasicky pomocí FPS, neobejdete se při každém vykreslení bez spousty dělení. Základem všeho je, tyto operace provádět co nejméně, abychom zbytečně nezatěžovali procesor.

14.09.2003

Pomoc, začínám - Michal Turek

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 tohoto webu. Informací je už nyní relativně dost, ale stále zůstala otázka: Kde začít?

21.07.2003

FPS: Konstantní rychlost animace - Michal Turek

FPS je zkratka z počátečních písmen slov Frames Per Second, 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.

04.11.2002

OpenGL - Referát na praktikum z informatiky - Daniel Čech (PDF, 27 stran)

Článek popisuje vznik a principy OpenGL, základy práce s ním, OpenGL datové typy, proč funkce začínají gl a na jejich konci bývá 3f, jinde 3ub apod. a základní práci v OpenGL. Na konci naleznete několik ukázkových zdrojových kódů v GLUT a Win32 API a porovnání OpenGL s DirectX. Určitě si ho přečtěte, stojí za to. Původ: někde na internetu.

25.05.2004

Několik poznámek k tvorbě počítačových her - Bernard Lidický (PDF, 19 stran)

Tento článek by měl být shrnutím mých zkušeností s tvorbou počítačových her, mohl by usnadnit život začínajícím amatérským tvůrcům her a zejména programátorům. Podíváme se v něm na několik obecných věcí o hrách a pak se vrhneme na grafiku, klávesnici s myší a nakonec na čas. V každé části se pokusíme vytvořit nějaké příklady a na nich předvést o čem je řeč. 193.3 kB - text článku (PDF, TeX) + příklady.

28.03.2004

Komprimované textury a SDL_Image - Radomír Vrána

V tomto článku si ukážeme, jak vytvářet komprimované OpenGL textury a jak za pomoci knihovny SDL_Image snadno načítat obrázky s alfa kanálem nebo v paletovém režimu. Třídu Picture jsem se snažil navrhnou tak, aby byla co nejjednodušší a dala se snadno použít v každém programu, zároveň díky SDL_Image poskytuje velké možnosti.

07.04.2003

Knihovna SDL Image - Bernard Lidický

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ů.

17.02.2003

Vytvoření SDL okna - Bernard Lidický

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.

13.02.2004

Přímka ve 2D - Michal Turek

Radomír Vrána mě požádal o radu, jak vypočítat průsečík dvou 2D přímek. Rozhodl jsem se, že mu místo obecných matematických vzorců pošlu rovnou kompletní C++ kód. Nicméně mi trochu přerostl přes hlavu, a tak vznikla kompletní třída přímky v obecném tvaru. Kromě průsečíku umí určit i jejich vzájemnou polohu (rovnoběžné, kolmé...), úhel, který svírají nebo vzdálenost libovolného bodu od přímky. Doufám, že tento můj drobný úlet nebude moc vadit :-]

10.07.2003

Analytická geometrie - Michal Turek

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 nějaký pozdější 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ů.

22.07.2003

OpenGL okno v dialogu - Michal Turek

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.

23.06.2003

Tisk a náhled před tiskem OpenGL scény - Milan Turek

Obalení OpenGL třídami MFC nám dovolí využít obou výhod API: rychlého vykreslování a elegantního rozhraní. Nicméně díky faktu, že mnoho ovladačů tiskáren nepracuje s API funkcí SetPixelFormat(), není možné tisknout OpenGL scénu přímo na tiskárnu. Velmi rozšířená technika je vykreslit OpenGL scénu do DIBu a poté ji zkopírovat do DC pro tisk nebo náhled. V tomto článku uvidíte jak to udělat.

23.06.2003

Kopírování OpenGL okna do DIBu - Milan Turek

Občas potřebujeme sejmout obrazovku v OpenGL a poté s ní pracovat jako s obyčejnou bitmapou. V tomto článku vám ukáži získání obsahu OpenGL okna a jeho uložení do DIBu ve formě nekomprimované bitmapy. Jediný omezením může být 24 bitová barevná hloubka obrazovky.

23.06.2003

Jak na šetřič obrazovky - Michal Turek

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.