Főoldal | Könyvlista | Gyorskereső

Egyes könyvek árából akár
80%
Az akciós árban vásárolt könyvekre további
kedvezmény nem vonatkozik.
kedvezmény!
OpenGL röviden

OpenGL röviden

Paul Martz:
OpenGL röviden


Megjelenés: 2007
Kiskapu Kiadó
288 oldal, bolti ár: 4500,- Ft

Internetes ár (-5%): 4275,- Ft

db

A könyv ismertetése

Vissza a lap tetejére | A könyv tartalomjegyzéke

Paul Martz:
OpenGL röviden

Az OpenGL, amelyet a 3D alkalmazások fejlesztésének egyik legkedveltebb programozási felületeként széles körben használnak videójátékok, bemutató-modellező és szimulációs programok, CAD-, virtuális valóság- és komputeranimációs alkalmazások készítésére, ajtót nyit a magas szintű, nagy teljesítményű térgrafikai számítógépprogramok világára.

Az OpenGL® röviden mindazokat az alapvető ismereteket tartalmazza, amelyekre szükségünk van ahhoz, hogy térgrafikai programokat kezdjünk fejleszteni, az OpenGL-fejlesztőkörnyezet beállításától a valósághű anyagmintázatok és árnyékok létrehozásáig. A könyv közérthető, gördülékeny stílusban íródott, így könnyen megtalálhatjuk benne a keresett információt, és gyorsan elsajátíthatjuk belőle az OpenGL 2.0 legfontosabb, leggyakrabban igénybe vett szolgáltatásainak használatát. A kötetet az alapvető kódolási irányelvek bemutatása, valamint hibaelhárítási tanácsok teszik teljessé.

A kötet tartalmából:

  • Mértani alakzatok, pontok, vonalak, sokszögek rajzolása és leképezése
  • A szín és a megvilágítás szabályozása elegáns grafikai hatások létrehozásához
  • Nézetek létrehozása és tájolása
  • A kép valószerűségének fokozása anyagmintázatokkal és árnyékolással
  • A leképezési sebesség növelése
  • A grafika rendszerfüggetlenségének megőrzése
Bevezető

A számítógépek fejlődését tekintve réges-régen (azoknak, akik a valóságban ragadtak, ez azt jelenti, hogy mintegy 15 éve) egy rendszerfüggetlen grafikaleképező alkalmazás fejlesztése nagy kihívást jelentett – és akkor még finoman fogalmaztam. A gondot nem is annyira a számítógépek hardvere, mint a szoftver és az alkalmazásprogramozási felületek (API-k) jelentették. A gyártók saját programkönyvtárakat készítettek, és saját eljárásokat dolgoztak ki, hogy rábírják a hardvert, hogy képeket rajzoljon a képernyőnkre. Ezek mindegyikét szabadalom védte, és a különböző gyártók hardverén futó alkalmazásoknak hatalmas mennyiségű, #ifdef blokkok közé szorított kódot kellett tartalmazniuk. Ettől sajnos még ma sem sikerült teljesen megszabadulni, de a grafika terén kétségkívül javult a helyzet.

Nagyjából ekkor történt, hogy ügyes programozók egy csoportja, akik a számítógépek hardverének és az azt működtető felületeknek a készítésében jelentős tapasztalatokat szereztek, megkísérelt megoldást adni a problémára. Az általuk megalkotott függvénykönyvtárat ugyan egyetlen cég, a Silicon Graphics Computer Systems Inc. tervezte és valósította meg, ám szokatlan módon (és talán ez volt a leginkább újító ötlet) ezt a felületet megosztották a versenytársakkal, sőt azok javaslatait és függvényeit is befogadták és beépítették a könyvtárba. Az OpenGL tehát egy nagy, szerető családba született – ez volt az OpenGL Architecture Review Board (az „ARB”) –, ahol megértették, hogy a számítógép és a grafika mit sem ér a hozzájuk kapcsolódó alkalmazások nélkül.

Ha belegondolunk, hogy mivel jár egy olyan programozási felület megtervezése, amely kellően elvont ahhoz, hogy kiküszöbölje a grafikai algoritmusok különféle megvalósításai között óhatatlanul fennálló különbségeket, megérthetjük, micsoda embert próbáló feladat volt ez. Ezen kívül ahhoz, hogy az új felületet elfogadják és használni kezdjék, a felületnek nem csupán elég egyszerűnek kellett lennie az egyes feladatok elvégzéséhez, de meg kellett felelnie az interaktív 3D komputergrafika alapkövetelményének, ami nem más, mint a lehető legnagyobb hatékonyság és sebesség. A használat egyszerűségét és a gyorsaságot ritkán sikerül egyszerre elérni, de a szoftvermérnökök munkájának tulajdonképpen ez a lényege, ezt a felületet pedig az alapkövetelmények kidolgozásával párhuzamosan fejlesztették.

Jelentősen nehezítette a fejlesztést az is, amivel az OpenGL megalkotói persze tisztában voltak: a számítógépes grafika a munka megkezdésekor alig nőtt ki a csecsemőkorból. A grafikai eljárások és hardveres megvalósításaik fejlődése azonban akkorra már teljes lendületet vett, ezért ha az OpenGL versenyben kívánt maradni, együtt kellett fejlődnie a területtel. Szédítő.

Most azonban tekerjük előre a szalagot a jelenhez. A könyv, amelyet az Olvasó a kezében tart, az OpenGL-ről szól: a rendszerfüggetlen 3D komputergrafika és képfeldolgozás uralkodó programozási felületéről – ugyanarról a felületről, amelynek megtervezését annyi évvel ezelőtt elhatározták. Az OpenGL hű maradt az örökségéhez: a kezdők könnyen elsajátíthatják a használatát, hogy interaktív, térgrafikai elemeket megjelenítő alkalmazásokat készítsenek, de elég erőteljes ahhoz, hogy motorja legyen a leginkább teljesítményérzékeny grafikai alkalmazásoknak is. Ez utóbbi eléréséhez azonban a felület (illetve annak a kötet írásakor legújabb, 2.0-s változata) több mint 800 belépési pontot tartalmaz, hogy a számítógépes grafikában ma használatos minden szolgáltatáshoz hozzáférhessünk az OpenGL nyelvén. E töménytelen függvény és eljárás között könnyű eltévedni, ezért egy tapasztalt kalauz nagy segítségünkre lehet.

Erre a feladatra vállalkozik Paul Martz, a komputergrafikusok közösségének régi tagja, aki nem csak figyelemmel követte, hanem maga is elősegítette az OpenGL fejlődését, és most kész megosztani tapasztalatait az Olvasóval, hogy az OpenGL-programozóvá válásig vezető utat minél fájdalommentesebbé tegye. Paul teljességében áttekintette az OpenGL-t, és kiszűrve belőle a modern OpenGL-programozás nélkülözhetetlen elemeit, egy kötetbe gyűjtötte a legfontosabb irányelveket. Teljesítményét csak elismeréssel illethetem, az Olvasónak pedig sok sikert kívánok az OpenGL-hez!

Jó leképezést!

Dave Shreiner
Mountain View, CA
2006. január

„Az NVIDIA alapvető célkitűzése, hogy hat hónaponként olyan áttörést jelentő terméket dobjon piacra, amely a Moore-törvényben leírt fejlődési sebességet lényegében négyzetre emelve megkétszerezi az előző generáció teljesítményét.”

Jen-Hsung Huang

„A kisgyermek kúszik, mielőtt járni kezdene, és lépked, mielőtt futna – egyik fejlődési lépcső sem képzelhető el az azt megelőző nélkül.

Lillian Breslow Rubin

A számítógépes grafika területe a többi komputertechnológiáéhoz hasonlóan döbbenetes iramban fejlődik. Az 1990-es évek végén az első, nagyközönségnek szánt, hardveres gyorsítást alkalmazó 3D grafikus kártyák megjelenése a térgrafikai szoftverfejlesztés új korszakának hajnalát jelentette. Ezek a kártyák ma halomba gyűlnek a szeméttelepeken, ahogy egyre erősebb és fejlettebb hardvereszközök veszik át a helyüket.

Ha csak most ismerkedünk az OpenGL-lel, valószínűleg az a vágyunk, hogy fejest ugorhassunk az összetett OpenGL-alkalmazások rejtelmeibe, és minél gyorsabban ilyen programokat írhassunk. Bár számtalan könyvet írtak, amely haladó szinten tárgyalja a grafikai programozást, a legtöbb jártasságot feltételez az OpenGL vagy egy másik térgrafikai alkalmazásprogramozási felület (API) használatában, ezért mielőtt bonyolultabb programozási feladatokba foghatnánk, valamilyen módon gyorsan el kell sajátítanunk az OpenGL alapjait.

Kötetünkről

Az OpenGL® röviden lényegre törő könyv, amely a modern, nagy teljesítményű, rendszerfüggetlen 3D komputergrafikai API-k ipari szabványának számító OpenGL legfontosabb, leggyakrabban használt szolgáltatásait mutatja be. A kötet az algoritmusok tárgyalása helyett az OpenGL alapvető eljárásait helyezi a középpontba, további forrásokhoz irányítva az érdeklődő olvasót, így gyorsan és tömör formában juthatunk hasznos információkhoz.

Az OpenGL 1.0 jelű változatát az SGI 1992-ben jelentette meg, és az gyorsan átvette a hatalmat a 3D szoftverfejlesztésben. Az OpenGL több változatban, Microsoft Windows, Linux, Unix és Apple Mac OS rendszerekhez is elérhető, az OpenGL-t támogató grafikushardver-gyártók között pedig olyan cégeket találunk, mint a 3DLabs, az ATI, az Intel, a Matrox, az NVIDIA vagy az SGI.

Az OpenGL népszerűségének egyik nyilvánvaló oka, hogy nyílt szabvány. Szolgáltatáskészletét az OpenGL Architecture Review Board (ARB) határozza meg, mely testületben több jelentős hardver- és szoftvercég képviselői kapnak helyet.1 A testület rendszeresen ülésezik, hogy megvitassa és jóváhagyja az OpenGL-szabvány kiegészítéseit és módosításait. Az a tény, hogy az ARB-ben több cég is képviselteti magát, biztosítja, hogy az OpenGL egyformán jól fusson a grafikus architektúrák széles körén.

Ez a kötet az OpenGL 2004 szeptemberében kiadott, 2.0-s változatát írja le. Bár az OpenGL jelentős változásokon ment keresztül első megjelenése óta, minden változata együttműködőképes maradt a korábbi változatokkal. A visszamenőleges megfelelőség előnyei nyilvánvalóak, és számos vállalat ki is aknázza az OpenGL-nek a szoftverfejlesztés költségeit csökkentő stabilitását.

Természetesen az idők során egyes régebbi OpenGL-szolgáltatások elavulttá váltak, ahogy az ARB új leképezőfüggvényekkel és megoldásokkal egészítette ki az OpenGL-szabványt. Más szolgáltatásokkal a fejlesztők közössége nem tudott (különböző okokból) soha igazán megbarátkozni: ilyen volt az együttható szélsőséges körülmények közötti (corner-case) vagy rendszerfüggetlen alkalmazhatóság, az egymást átfedő vagy korlátozott szolgáltatások, vagy a majdnem általános nem hatékony megvalósítás. Az új szolgáltatások hozzáadása a régi (és egyre inkább elavult) képességek megtartása mellett vaskos és egyre bonyolultabb OpenGL-szabványt eredményezett. Az összehasonlítás kedvéért:

Az 1992-ben megjelent eredeti OpenGL 1.0 szabvány 163 oldalból állt. Ma az OpenGL 2.0 szabvány 368 oldalas, az OpenGL Shading Language kiegészítés pedig a teljes terjedelmet 474 oldalra növeli.

Az Addison-Wesley alapműnek számító, az OpenGL 1.0 szabványt leíró OpenGL® Programming Guide és OpenGL® Reference Manual című kötetei (a vörös és a kék könyv), amelyek első kiadása 1993-ban jelent meg, összesen 960 oldalra rúgtak. Legújabb kiadásaik, amelyekben az OpenGL 1.4 és 2.0 leírása szerepel, együttesen már 1600 oldalt tesznek ki. Ha ehhez hozzáadjuk a nemrégiben megjelent OpenGL® Shading Language második kiadását (a narancs könyvet), az oldalszám 2400-ra emelkedik.

Bár az ilyen kimerítő leírások nélkülözhetetlenek a tapasztalt programozók számára, a dokumentáció méretének és összetettségének növekedése az évek során az újsütetű OpenGL-fejlesztők tanulási idejét is jelentősen megnövelte, ráadásul az információtömeg puszta mérete, illetve az elavult megoldások tanulmányozására pazarolt idő miatt az újoncok a javasolt eljárásokkal kapcsolatos információkat is nehezebben találják meg.

Az OpenGL® röviden ezt a problémát azzal igyekszik kikerülni, hogy az OpenGL-nek csak a lényeges, a jelenlegi 3D szoftverfejlesztésben alkalmazott elemeit mutatja be, és a tárgyalásból kihagyja a programozási felület számos szolgáltatását. A kötet a modern OpenGL-programozásban általánosan használt szolgáltatásokra és elfogadott eljárásokra összpontosít, a ma már elavultnak számító megoldásokra pedig csak akkor tér ki, ha azok lényeges fogalmakat vagy javasolt eljárásokat segítenek megvilágítani. Az egyes fejezetek tartalmát, illetve a nem tárgyalt témákat minden fejezet elején összefoglaljuk.

Az OpenGL® röviden azzal is igyekszik gördülékenyebbé tenni a tanulást, hogy az ismereteket közvetlen stílusban, a „Hogyan”-leírásokhoz hasonlóan adja át, így az olvasók gyorsan megtalálhatják a keresett információt, anélkül, hogy felesleges anyagok tömegén kellene átverekedniük magukat. Ez az oka annak, hogy a grafikai algoritmusoknak kevés teret és magyarázatot szenteltünk. Az árnyékoló algoritmusok (amelyekkel a 6. fejezetben foglalkozunk) jelentik az egyetlen kivételt, mert ezek szinte mindenütt alkalmazhatók, és nincs hozzájuk közvetlen OpenGL-támogatás. Más algoritmusok esetében az OpenGL® röviden feltételezi, hogy az olvasó jártas a számítógépes grafikában, de legalábbis egyetemi szintű grafikai kurzus keretében olvassa a kötetet.

Könyvünk az OpenGL-nek azt a részhalmazát mutatja be, amellyel a legtöbb programozó az OpenGL-programozás során felmerülő feladatok nagy részét képes elvégezni. Mivel az anyag nem ad teljes leírást, az olvasó valószínűleg bővíteni szeretné majd ismereteit, ezért a kötetet úgy is tekinthetjük, mint egy útitérképet, amely további OpenGL- és térgrafika-programozási ismeretekhez vezet el minket. A könyvben gyakran hivatkozunk a következő forrásokra:

az OpenGL hivatalos webhelyére a http://www.opengl.org internetcímen, amely számos fejlesztői fórumnak, példaprogramnak, segédkönyvtárnak, műszaki leírásnak, dokumentációnak, hiperhivatkozásnak és más értékes OpenGL-forrásnak ad otthont;

a Mark Segal és Kurt Akeley által írt és Jon Leech által szerkesztett, az OpenGL webhelyéről PDF fájlként szabadon letölthető The OpenGL Graphics System: A Specification leírásra, amely az OpenGL teljes, formális leírása, és amely – bár az OpenGL-megvalósítóinak szánták – nélkülözhetetlen minden alkalmazásprogramozó számára;

az OpenGL® Programming Guide (szerzői az OpenGL ARB, Dave Shreiner, Mason Woo, Jackie Neider és Tom Davis, kiadója az Addison-Wesley), ismertebb nevén a vörös könyv ötödik kiadására, amely az OpenGL-programozás alapműve, és kimerítően tárgyalja a grafikai algoritmusokat és azok OpenGL-beli megvalósítását;

az OpenGL® Reference Manual (szerzői az OpenGL ARB és Dave Shreiner, kiadója az Addison-Wesley), ismertebb nevén a kék könyv negyedik kiadására, amely az OpenGL-programozók első számú kézikönyve;

az OpenGL® Shading Language (szerzője Randi Rost, kiadója az Addison-Wesley), ismertebb nevén a narancs könyv második kiadására, amely az OpenGL-nek a programozható grafikus hardverhez kapcsolódó felületét írja le (ez a szolgáltatás az OpenGL 2.0 szabvány része);

a Computer Graphics: Principles and Practice (szerzői James D. Foley, Andries van Dam, Steven K. Feiner és John F. Hughes, kiadója az Addison-Wesley) második kiadására, illetve a 3D Computer Graphics (írta Alan Watt, kiadta az Addison-Wesley) című könyvre – mindkettő kitűnő általános forrás a síkbeli és térbeli számítógépes grafikához.

 

A könyv célközönsége

Az OpenGL® röviden olyan C++-programozóknak íródott, akik most ismerkednek az OpenGL-lel. A kötet feltételez némi (mérsékelt) jártasságot a számítógépes grafikában: az olvasónak tisztában kell lennie a grafikus erőforrásokkal, szövegekkel és algoritmusokkal, de konkrét grafikai tapasztalatokra nincs szükség ahhoz, hogy haszonnal forgathassuk a könyvet; például nem kell tudni, hogyan kódoljuk a Bresenham-algoritmust, viszont érteni kell a letapogatási átalakítás (scan conversion) fogalmát. A más grafikai API-kkal szerzett tapasztalat előnyt jelent, de nem előfeltétele annak, hogy megértsük a könyvet.

Ismerni kell viszont a C++ programozási nyelvet. A könyv webhelyén elérhető példakódok C++ nyelvűek, és lefordíthatók, illetve futtathatók Microsoft Windows, Apple Mac OS, valamint a legtöbb Unix- és Linux-rendszeren. A könyv kódtöredékeinek többsége érthető kell legyen mindenki számára, aki jártas a C programozási nyelvben, és fel tud lapozni egy C++-kézikönyvet.

Az olvasónak a fentieken kívül rendelkeznie kell a szokványos lineárisalgebra-kurzusokon oktatott vektor- és mátrixmatematikai ismeretekkel, például értenie kell a mátrixösszefűzés és a vektor-mátrix szorzás lényegét. Azok, akik egy másik térgrafikai API-ból már ismerik a transzformációkat és a koordinátarendszereket, könnyű olvasmánynak fogják találni ezt a kötetet. Azok, akiknek ezek a témák újdonságnak számítanak, számtalan 3D grafikával foglalkozó művet találhatnak, amelyekből kielégítő tudásra tehetnek szert; fellapozhatják például a Computer Graphics: Principles and Practice 5. fejezetét (Geometrical Transformations).

Az olvasónak természetesen alapvető matematikai – algebrai, geometriai, trigonometriai – ismeretekkel is rendelkeznie kell.

A könyv szerkezete

Az OpenGL® röviden nyolc fejezetből, négy függelékből és egy tárgymutatóból áll:

Az 1. fejezet (Bevezetés az OpenGL világába) az OpenGL architektúráját és fogalmait mutatja be nagy vonalakban, valamint megismertet a GLUT és a GLU segédkönyvtárakkal, illetve az OpenGL-fejlesztőkörnyezet beállításával, majd bemutat egy egyszerű OpenGL-példát. A fejezet az OpenGL API történetének részletes leírásával ér véget.

A 2. fejezet (Elemi alakzatok rajzolása) azt tárgyalja, hogyan képezhetünk le geometriai adatokat az OpenGL-lel. Leírja az OpenGL elemi rajzolási típusait és azt, hogy miként képezhetjük le ezeket csúcstömbök és tárolóobjektumok segítségével. A fejezetben a rajzolás más részleteivel is megismerkedünk, például a képkockatár kiürítésével, a sorrendfüggőséggel, illetve a mélységteszteléssel.

A 3. fejezetben (Transzformációk és nézetek) az OpenGL transzformációs csővezetéke kerül terítékre. Górcső alá vesszük a nézetek elhelyezésének és tájolásának módját, a perspektivikus és ortografikus vetületeket, illetve a nézetablak szabályozását, valamint a nézetnek az egérrel történő interaktív módosítását.

A 4. fejezet (Megvilágítás) a fények helyét, irányát és színét, valamint az anyagok fényvisszaverését szabályozó megvilágítási paraméterek beállítását tárgyalja.

Az 5. fejezet (Képpont-téglalapok) azt mutatja be, hogyan közelíti meg az OpenGL a képpontadatok blokkjainak kirajzolását, kiolvasását, illetve másolását.

A 6. fejezetben (Mintázattérképek) az anyagmintázat-objektumok létrehozásával és azoknak a leképezett testekre való alkalmazásával folytatjuk. A mintázattérképezés hatékony eszköz a leképezett grafikák valószerűségének fokozására – ebben a fejezetben a tükröző fényfoltok, a környezettérképek és az árnyékok valósághűségét növelő megoldásokat mutatjuk be.

A 7. fejezetet (Bővítmények és változatok) az olyan rendszer- és változatfüggetlen kódok írásának szenteltük, amelyek megvalósításfüggő grafikushardver-szolgáltatásokra épülnek.

A 8. fejezetben (Rendszerfüggő felületek) az Apple Mac OS-ra, a Linuxra és a Microsoft Windowsra jellemző egyedi OpenGL-felületeket mutatjuk be. Megmutatjuk, hogyan hozhatunk létre és használhatunk több OpenGL-leképezőkörnyezetet, és hogyan oszthatunk meg közöttük objektumokat.

Az A függelék (Egyéb szolgáltatások) röviden ismertet néhány olyan OpenGL-szolgáltatást, amely meghaladta a könyv kereteit, például az OpenGL Shading Language nyelvet, a vágósíkokat, a ködöt, a többszörös mintavételt és a stencilezést.

A B függelék (Programozási irányelvek) olyan általánosan elfogadott OpenGL-programozási irányelveket mutat be, amelyek segítenek, hogy megbízható és hordozható OpenGL-alkalmazásokat írjunk.

A C függelék (Teljesítmény) témáját a precíz időmérés adja, amelynek alapján azonosíthatjuk és megszüntethetjük a teljesítményt visszafogó szűk keresztmetszeteket.

A D függelékben (Hibakeresés és hibaelhárítás) a leggyakrabban előforduló problémák elhárításához adunk segítséget.

 

Az OpenGL® röviden webhelye

A könyv webhelyén, a http://www.opengldistilled.com internetcímen a kötet valamennyi példakódját elérhetjük. A fájlok letöltéséhez kattintsunk a Download (Letöltés) hivatkozásra. Minden kódot lefordítottunk és kipróbáltunk a következő rendszereken: Microsoft Windows XP, Visual Studio 6.0-val, .NET 2003-mal, illetve Cygwin fejlesztőkörnyezettel; Apple Mac OS X, Xcode 2.0-val; valamint Red Hat Linux, GNU fordítókkal.

Természetesen a Kiskapu Kiadó webhelyéről is letölthetők a következő címről: http://www.kiskapukiado.hu/133

A példakódokhoz a GLUT, a TIFF könyvtár és a GNU Make szükséges. A webhelyen ezeknek a könyvtáraknak és segédprogramoknak a letöltéséhez is találunk hivatkozásokat.

Az OpenGL® röviden-ben színes táblákra való hivatkozásokat is találunk; ezek PDF állományként hozzáférhetők a könyv webhelyén, valamint az Addison-Wesley honlapján, a http://www.awprofessional.com/title/0321336798 címen.

A könyvben felfedezett esetleges hibák javítását a könyv webhelyén tesszük közzé.

A szerzőről

Paul Martz a Colorado állambeli Boulderben tevékenykedő SimAuthor Inc. vezető szoftvermérnöke, aki a vállalatnál repülési adatok képi megjelenítésére fejleszt OpenGL alapú programokat. A SimAuthor előtt a Hewlett-Packard Graphics Software Lab, valamint az Evans & Sutherland Workstation Graphics Division részlegében dolgozott.

Paul 1986 óta foglalkozik számítógépes grafikával; munkássága középpontjában a térgrafikai rendszerek és OpenGL-eszközmeghajtók fejlesztése áll. 1993-ban teljesítményérzékeny kódot írt az Evans & Sutherland első OpenGL-termékéhez, az 1990-es évek végén pedig részt vett a HP-UX és a Microsoft Windows OpenGL-eszközmeghajtójának fejlesztésében, amelyet a Hewlett-Packard munkaállomásainak OpenGL alapú grafikus hardveréhez készítettek. Paul kivette a részét az OpenGL-szabványváltozatok értékeléséből is; jelenleg független szakértőként az OpenGL Architecture Review Board munkáját segíti.

Paul irányította az OpenGL műszaki FAQ elkészítését, amelyet az OpenGL hivatalos webhelyén, a http://www.opengl.org internetcímen érhetünk el; emellett számos műszaki szabványleírás és internetes oktatóanyag, illetve számítógépes grafikával foglalkozó könyvek kritikái fűződnek a nevéhez.

Amikor nem az OpenGL-lel kapcsolatos tevékenységet végez, Paul rendszerint a pókerasztalnál gyűjti az ászokat, vagy dobjait püfölve kelt hatalmas zajt.

A könyv tartalomjegyzéke

Vissza a lap tetejére | A könyv ismertetése

Paul Martz:
OpenGL röviden

1. fejezet Bevezetés az OpenGL világába 1

Amit a fejezetből megtanulhatunk 2

Amit a fejezetből nem tanulhatunk meg 3

1.1. Mi az OpenGL? 3

1.2. GLUT 18

1.3. GLU 18

1.4. A fejlesztőkörnyezet 19

1.5. Egy egyszerű példa 22

1.6. Az OpenGL története 26

1.7. További információk 30

1.8. Források 31

 

2. fejezet Elemi alakzatok rajzolása 33

Amit a fejezetből megtanulhatunk 34

Amit a fejezetből nem tanulhatunk meg 34

2.1. Elemi alakzatok az OpenGL-ben 35

2.2. A csúcsadatok meghatározása 38

2.3. Részletek rajzolása 55

2.4. A teljesítménnyel kapcsolatos kérdések 64

2.5. További információk 69

2.6. Források 69

 

3. fejezet Transzformációk és nézetek 71

Amit a fejezetből megtanulhatunk 72

Amit a fejezetből nem tanulhatunk meg 72

3.1. Koordinátarendszerek és mátrixok 73

3.2. A transzformációs csővezeték 78

3.3. A modell–nézet mátrix beállítása 86

3.4. Perspektivikus és párhuzamos vetületek 90

3.5. A nézetablak 92

3.6. Kijelölés 93

3.7. További információk 99

3.8. Források 99

 

4. fejezet Megvilágítás 101

Amit a fejezetből megtanulhatunk 102

Amit a fejezetből nem tanulhatunk meg 102

4.1. Áttekintés 103

4.2. Normálvektorok 106

4.3. Fényparaméterek 107

4.4. Anyagparaméterek 109

4.5. Helyzeti és irányított fények 113

4.6. A megvilágítás hibáinak megkeresése 115

4.7. További információk 118

4.8. Források 119

 

5. fejezet Képpont-téglalapok 121

Amit a fejezetből megtanulhatunk 122

Amit a fejezetből nem tanulhatunk meg 122

5.1. Képpontok rajzolása 123

5.2. Képpontok kiolvasása 129

5.3. Képpontok másolása 130

5.4. A teljesítménnyel kapcsolatos kérdések 130

5.5. Hibakeresés 132

5.6. További információk 136

5.7. Források 136

 

6. fejezet Mintázattérképezés 137

Amit a fejezetből megtanulhatunk 137

Amit a fejezetből nem tanulhatunk meg 138

6.1. Mintázattérképek használata 139

6.2. Fények és árnyékok mintázatokkal 160

6.3. Hibakeresés 175

6.4. További információk 180

6.5. Források 181

 

7. fejezet Bővítmények és változatok 183

Amit a fejezetből megtanulhatunk 184

Amit a fejezetből nem tanulhatunk meg 184

7.1. Bővítmények 184

7.2. Változatok 191

7.3. Bővítmény- és változatbiztos kód 192

7.4. További információk 197

 

8. fejezet Rendszerfüggő felületek 199

Amit a fejezetből megtanulhatunk 200

Amit a fejezetből nem tanulhatunk meg 200

8.1. Kódolási elvek 201

8.2. Apple Mac OS X 202

8.3. Linux 206

8.4. Microsoft Windows 212

8.5. További információk 217

8.6. Források 217

A függelék Egyéb szolgáltatások 219

A.1. Többszörös mintavételezés 219

A.2. Takarási lekérdezések 220

A.3. Köd 221

A.4. Vágósíkok 221

A.5. Stencil 222

A.6. A gyűjtőtár 222

A.7. Az OpenGL Shading Language 222

A.8. Források 226

 

B függelék Programozási irányelvek 227

B.1. Állapot 227

B.2. Hibák 229

B.3. Pontosság 229

B.4. Objektumok 231

 

C függelék Teljesítmény 233

C.1. Mérjük a teljesítményt! 234

C.2. Kerüljük a szoftveres leképezést! 235

C.3. Küszöböljük ki a csővezeték szűk keresztmetszeteit! 237

C.4. A nem látható alakzatok levágása 241

C.5. Állapotváltozások és lekérdezések 242

 

D függelék Hibakeresés és hibaelhárítás 245

D.1. Hibakereső eszközök 245

D.2. OpenGL-hibák 246

D.3. Az üres ablakot eredményező hibák megkeresése 249

 

Irodalomjegyzék 255

Tárgymutató 259

Vissza a lap tetejére