NeHe OpenGL Tutoriály

Lekce 0

Lekce 0 - Předmluva k NeHe Tutoriálům

Napsal: Michal Turek - Woq
Přeložil: není překladem

Ještě než se pustíte do čtení tohoto textu, měli byste vědět, že není součástí oficiálních (anglických) NeHe Tutoriálů. Napsal ho "pouze" jeden z překladatelů, kterému chybělo něco na způsob trochu ucelenějšího úvodu do tak obrovské problematiky, jakou představuje programování 3D grafiky, her a ostatně všeho okolo OpenGL.

Lekce 1

Lekce 1 - Vytvoření OpenGL okna ve Windows

Napsal: Jeff Molofee - NeHe
Přeložil: Václav Slováček - Wessan

Naučíte se jak nastavit a vytvořit OpenGL okno ve Windows. Program, který vytvoříte zobrazí "pouze" prázdné okno. Černé pozadí nevypadá nic moc, ale pokud porozumíte této lekci, budete mít velmi dobrý základ pro jakoukoliv další práci. Zjistíte jak OpenGL pracuje, jak probíhá vytváření okna a také jak napsat jednoduše pochopitelný kód.

Lekce 2

Lekce 2 - Vytváření trojúhelníků a čtyřúhelníků

Napsal: Jeff Molofee - NeHe
Přeložil: Václav Slováček - Wessan

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í na představivost až tak jednoduché. 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.

Lekce 3

Lekce 3 - Barvy

Napsal: Jeff Molofee - NeHe
Přeložil: Milan Turek

S jednoduchým rozšířením znalostí ze druhé lekce budete moci používat barvy. Naučíte se jak ploché vybarvování, tak i barevné přechody. Barvy rozzáří vzhled aplikace a tím spíše zaujmou diváka.

Lekce 4

Lekce 4 - Rotace

Napsal: Jeff Molofee - NeHe
Přeložil: Milan Turek

Naučíme se, jak otáčet objekt okolo os. Trojúhelník se bude otáčet kolem osy y a čtverec kolem osy x. Je jednoduché vytvořit scénu z polygonů. Přidání pohybu ji pěkně oživí.

Lekce 5

Lekce 5 - Pevné objekty

Napsal: Jeff Molofee - NeHe
Přeložil: Milan Turek

Rozšířením poslední části vytvoříme skutečné 3D objekty. Narozdíl od 2D objektů ve 3D prostoru. Změníme trojúhelník na pyramidu a čtverec na krychli. Pyramida bude vybarvena barevným přechodem a každou stěnu krychle vybarvíme jinou barvou.

Lekce 6

Lekce 6 - Textury

Napsal: Jeff Molofee - NeHe
Přeložil: Milan Turek

Namapujeme bitmapový obrázek na krychli. Použijeme zdrojové kódy z první lekce, protože je jednoduší (a přehlednější) začít s prázdným oknem než složitě upravovat předchozí lekci.

Lekce 7

Lekce 7 - Texturové filtry, osvětlení, ovládání pomocí klávesnice

Napsal: Jeff Molofee - NeHe
Přeložil: Jiří Rajský - RAJSOFT junior

V tomto díle 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.

Lekce 8

Lekce 8 - Blending

Napsal: Tom Stanis
Přeložil: Jiří Rajský - RAJSOFT junior

Další typ speciálního efektu v OpenGL je blending, neboli průhlednost. Kombinace pixelů je určena alfa hodnotou barvy a použitou funkcí. Nabývá-li alfa 0.0f, materiál zprůhlední, hodnota 1.0f přináší pravý opak.

Lekce 9

Lekce 9 - Pohyb bitmap ve 3D prostoru

Napsal: Jeff Molofee - NeHe
Přeložil: Milan Turek

Tento tutoriál vás naučí pohyb objektů ve 3D prostoru a 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...

Lekce 10

Lekce 10 - Vytvoření 3D světa a pohyb v něm

Napsal: Lionel Brits - ßetelgeuse
Přeložil: Jiří Rajský - RAJSOFT junior & Michal Turek - Woq

Do současnosti jsme programovali otáčející se kostku nebo pár hvězd. Máte (měli byste mít :-) základní pojem 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.

Lekce 11

Lekce 11 - Efekt vlnící se vlajky

Napsal: Bosco
Přeložil: Michal Turek - Woq

Naučíme se jak pomocí sinusové funkce animovat obrázky. Pokud znáte standardní š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.

Lekce 12

Lekce 12 - Display list

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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

Lekce 13

Lekce 13 - Bitmapové fonty

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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

Lekce 14

Lekce 14 - Outline fonty

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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. Jsou nejlepší volbou ke hrám a demům.

Lekce 15

Lekce 15 - Mapování textur na fonty

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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

Lekce 16

Lekce 16 - Mlha

Napsal: Christopher Aliotta - Precursor
Přeložil: Michal Turek - Woq

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.

Lekce 17

Lekce 17 - 2D fonty z textur

Napsal: Giuseppe D'Agata & Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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.

Lekce 18

Lekce 18 - Kvadriky

Napsal: GB Schmick - TipTup
Přeložil: Michal Turek - Woq

Představuje se vám báječný svět kvadriků. 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.

Lekce 19

Lekce 19 - Částicové systémy

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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

Lekce 20

Lekce 20 - Maskování

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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

Lekce 21

Lekce 21 - Přímky, antialiasing, časování, pravoúhlá projekce, základní zvuky a jednoduchá herní logika

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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.

Lekce 22

Lekce 22 - Bump Mapping & Multi Texturing

Napsal: Jens Schneider
Přeložil: Václav Slováček - Wessan

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.

Lekce 23

Lekce 23 - Mapování textur na kulové kvadriky

Napsal: GB Schmick - TipTup
Přeložil: Milan Turek

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.

Lekce 24

Lekce 24 - Výpis OpenGL rozšíření, ořezávací testy a textury z TGA obrázků

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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.

Lekce 25

Lekce 25 - Morfování objektů a jejich nahrávání z textového souboru

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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.

Lekce 26

Lekce 26 - Odrazy a jejich ořezávání za použití stencil bufferu

Napsal: Banu Cosmin - Choko
Přeložil: Milan Turek & Michal Turek - Woq

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.

Lekce 27

Lekce 27 - Stíny

Napsal: Banu Cosmin - Choko & Brett Porter
Přeložil: Michal Turek - Woq

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.

Lekce 28

Lekce 28 - Bezierovy křivky a povrchy, fullscreen fix

Napsal: David Nikdel
Přeložil: Michal Turek - Woq

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.

Lekce 29

Lekce 29 - Blitter, nahrávání .RAW textur

Napsal: Andreas Löffler & Rob Fletcher
Přeložil: Václav Slováček - Wessan & Michal Turek - Woq

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.

Lekce 30

Lekce 30 - Detekce kolizí

Napsal: Dimitrios Christopoulos
Přeložil: Michal Turek - Woq

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.

Lekce 31

Lekce 31 - Nahrávání a renderování modelů

Napsal: Brett Porter
Přeložil: Michal Turek - Woq

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

Lekce 32

Lekce 32 - Picking, alfa blending, alfa testing, sorting

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

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.

Lekce 33

Lekce 33 - Nahrávání komprimovaných i nekomprimovaných obrázků TGA

Napsal: Evan Pipho - Terminate
Přeložil: Michal Turek - Woq

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.

Lekce 34

Lekce 34 - Generování terénů a krajin za použití výškového mapování textur

Napsal: Ben Humphrey - DigiBen
Přeložil: Michal Turek - Woq

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

Lekce 35

Lekce 35 - Přehrávání videa ve formátu AVI

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

Přehrávání AVI videa v OpenGL? Na pozadí, povrchu krychle, koule, či válce, ve fullscreenu nebo v obyčejném okně. Co víc si přát...

Lekce 36

Lekce 36 - Radial Blur, renderování do textury

Napsal: Dario Corno - rIo
Přeložil: Michal Turek - Woq

Společnými silami vytvoříme extrémně působivý efekt radial blur, který nevyžaduje žádná OpenGL rozšíření a funguje na jakémkoli hardwaru. Naučíte se také, jak lze na pozadí aplikace vyrenderovat scénu do textury, aby pozorovatel nic neviděl.

Lekce 37

Lekce 37 - Cel-Shading

Napsal: Sami Hamlaoui - MENTAL
Přeložil: Václav Slováček - Wessan & Michal Turek - Woq

Cel-Shading je druh vykreslování, při kterém výsledné modely vypadají jako ručně kreslené karikatury z komiksů (cartoons). Rozličné efekty mohou být dosaženy miniaturní modifikací zdrojového kódu. Cel-Shading je velmi úspěšným druhem renderingu, který dokáže kompletně změnit duch hry. Ne ale vždy... musí se umět a použít s rozmyslem.

Lekce 38

Lekce 38 - Nahrávání textur z resource souboru & texturování trojúhelníků

Napsal: Jeff Molofee - NeHe
Přeložil: Václav Slováček - Wessan

Tento tutoriál jsem napsal pro všechny z vás, kteří se mě v emailech dotazovali na to "Jak mám loadovat texturu ze zdrojů programu, abych měl všechny obrázky uložené ve výsledném .exe souboru?" a také pro ty, kteří psali "Vím, jak otexturovat obdélník, ale jak mapovat na trojúhelník?" Tutoriál není, oproti jiným, extrémně pokrokový, ale když nic jiného, tak se naučíte, jak skrýt vaše precizní textury před okem uživatele. A co víc - budete moci trochu ztížit jejich kradení :-)

Lekce 39

Lekce 39 - Úvod do fyzikálních simulací

Napsal: Erkin Tunca
Přeložil: Václav Slováček - Wessan

V gravitačním poli se pokusíme rozpohybovat hmotný bod s konstantní rychlostí, hmotný bod připojený k pružině a hmotný bod, na který působí gravitační síla - vše podle fyzikálních zákonů. Kód je založen na nejnovějším NeHeGL kódu.

Lekce 40

Lekce 40 - Fyzikální simulace lana

Napsal: Erkin Tunca
Přeložil: Michal Turek - Woq

Přichází druhá část dvoudílné série o fyzikálních simulacích. Základy už známe, a proto se pustíme do komplikovanějšího úkolu - klávesnicí ovládat pohyby simulovaného lana. Zatáhneme-li za horní konec, prostřední část se rozhoupe a spodek se vláčí po zemi. Skvělý efekt.

Lekce 41

Lekce 41 - Volumetrická mlha a nahrávání obrázků pomocí IPicture

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

V tomto tutoriálu se naučíte, jak pomocí rozšíření EXT_fog_coord vytvořit volumetrickou mlhu. Také zjistíte, jak pracuje IPicture kód a jak ho můžete využít pro nahrávání obrázků ve svých vlastních projektech. Demo sice není až tak komplexní jako některá jiná, nicméně i přesto vypadá hodně efektně.

Lekce 42

Lekce 42 - Více viewportů

Napsal: Jeff Molofee - NeHe
Přeložil: Michal Turek - Woq

Tento tutoriál byl napsán pro všechny z vás, kteří se chtěli dozvědět, jak do jednoho okna zobrazit více pohledů na jednu scénu, kdy v každém probíhá jiný efekt. Jako bonus přidám získávání velikosti OpenGL okna a velice rychlý způsob aktualizace textury bez jejího znovuvytváření.

Lekce 43

Lekce 43 - FreeType Fonty v OpenGL

Napsal: Sven Olsen
Přeložil: Pavel Hradský a Michal Turek - Woq

Použitím knihovny FreeType Font rendering library můžete snadno vypisovat vyhlazené znaky, které vypadají mnohem lépe než písmena u bitmapových fontů z lekce 13. Náš text bude mít ale i jiné výhody - bezproblémová rotace, dobrá spolupráce s OpenGL vybíracími (picking) funkcemi a víceřádkové řetězce.

Lekce 44

Lekce 44 - Čočkové efekty

Napsal: Vic Hollis
Přeložil: Michal Turek - Woq

Čočkové efekty vznikají po dopadu paprsku světla např. na objektiv kamery nebo fotoaparátu. Podíváte-li se na záři vyvolanou čočkou, zjistíte, že jednotlivé útvary mají jednu společnou věc. Pozorovateli se zdá, jako by se všechny pohybovaly skrz střed scény. S tímto na mysli můžeme osu z jednoduše odstranit a vytvářet vše ve 2D. Jediný problém související s nepřítomností z souřadnice je, jak zjistit, jestli se zdroj světla nachází ve výhledu kamery nebo ne. Připravte se proto na trochu matematiky.

Lekce 45

Lekce 45 - Vertex Buffer Object (VBO)

Napsal: Paul Frazee
Přeložil: Michal Turek - Woq

Jeden z největších problémů jakékoli 3D aplikace je zajištění její rychlosti. Vždy byste měli limitovat množství aktuálně renderovaných polygonů buď řazením, cullingem nebo nějakým algoritmem na snižování detailů. Když nic z toho nepomáhá, můžete zkusit například vertex arrays. Moderní grafické karty nabízejí rozšíření nazvané vertex buffer object, které pracuje podobně jako vertex arrays kromě toho, že nahrává data do vysoce výkonné paměti grafické karty, a tak podstatně snižuje čas potřebný pro rendering. Samozřejmě ne všechny karty tato nová rozšíření podporují, takže musíme implementovat i verzi založenou na vertex arrays.

Lekce 46

Lekce 46 - Fullscreenový antialiasing

Napsal: Colt McAnlis - MainRoach
Přeložil: Michal Turek - Woq

Chtěli byste, aby vaše aplikace vypadaly ještě lépe než doposud? Fullscreenové vyhlazování, nazývané též multisampling, by vám mohlo pomoci. S výhodou ho používají ne-realtimové renderovací programy, nicméně s dnešním hardwarem ho můžeme dosáhnout i v reálném čase. Bohužel je implementováno pouze jako rozšíření ARB_MULTISAMPLE, které nebude pracovat, pokud ho grafická karta nepodporuje.

Lekce 47

Lekce 47 - CG vertex shader

Napsal: Owen Bourne
Přeložil: Michal Turek - Woq

Používání vertex a fragment (pixel) shaderů ke "špinavé práci" při renderingu může mít nespočet výhod. Nejvíce je vidět např. pohyb objektů do teď výhradně závislý na CPU, který neběží na CPU, ale na GPU. Pro psaní velice kvalitních shaderů poskytuje CG (přiměřeně) snadné rozhraní. Tento tutoriál vám ukáže jednoduchý vertex shader, který sice něco dělá, ale nebude předvádět ne nezbytné osvětlení a podobné složitější nadstavby. Tak jako tak je především určen pro začátečníky, kteří už mají nějaké zkušenosti s OpenGL a zajímají se o CG.

Lekce 48

Lekce 48 - ArcBall rotace

Napsal: Terence J. Grant
Přeložil: Pavel Hradský a Michal Turek - Woq

Nebylo by skvělé otáčet modelem pomocí myši jednoduchým drag & drop? S ArcBall rotacemi je to možné. Moje implementace je založená na myšlenkách Brettona Wadea a Kena Shoemakea. Kód také obsahuje funkci pro rendering toroidu - kompletně i s normálami.