Hlavní navigace

Grafická knihovna OpenGL (34): seznam příkladů

Pavel Tišnovský 24. 2. 2004

V závěrečné části seriálu o grafické knihovně OpenGL naleznete seznam všech demonstračních příkladů použitých v seriálu. Ke konci článku budou také uvedeny seznamy funkcí OpenGL s odkazy na díly, ve kterých jsou tyto funkce popsány.

Obsah

Seznam demonstračních příkladů
Odkazy na příkazy OpenGL rozdělené podle jednotlivých dílů
Odkazy na příkazy OpenGL setříděné podle abecedy

Seznam demonstračních příkladů

01

02 03 04 05

06 07 08 09 10
 11

12 13 14 15 16 17

18 19 20
21 22 23

24 25 26 27 28 29

30
31 32 33 34 35

36 37 38 39 40
 41

42 43 44 45 46 47

48 49 50
51 52 53

54 55 56 57 58 59

60
61 62 63 64 65

66 67 68 69 70
 71

72 73 74 75 76 77

78 79 80
81

01 zdrojový kódHTML kód (syntaxe)
Vykreslení zeleného trojúhelníka pomocí grafické primitivy GL_TRIANGLE.

02 zdrojový kód HTML kód (syntaxe)
Vykreslení všech grafických primitiv podporovaných v OpenGL.

03 zdrojový kódHTML kód (syntaxe)
Změna vlastností vykreslovaných bodů.

04 zdrojový kód HTML kód (syntaxe)
Změna vlastností vykreslovaných úseček.

05 zdrojový kódHTML kód (syntaxe)
Změna vlastností vykreslovaných plošných polygonů.

06 zdrojový kód HTML kód (syntaxe)
Základy práce s transformačními maticemi.

07 zdrojový kódHTML kód (syntaxe)
Posun těles pomocí transformačních matic.

08 zdrojový kód HTML kód (syntaxe)
Vliv změny pořadí aplikovaných transformací na těleso.

09 zdrojový kódHTML kód (syntaxe)
Použití zásobníku matic, skládání transformací.

10 zdrojový kód HTML kód (syntaxe)
Vykreslení jednoduché bitmapy.

11 zdrojový kódHTML kód (syntaxe)
Řetězové zobrazení více bitmap.

12 zdrojový kód HTML kód (syntaxe)
Bitmapy s jiným režimem uložení pixelů.

13 zdrojový kódHTML kód (syntaxe)
Vypsání řetězce pomocí bitmap.

14 zdrojový kód HTML kód (syntaxe)
Vypsání řetězce pomocí bitmap a display listů.

15 zdrojový kódHTML kód (syntaxe)
Zjednodušené vypsání řetězce pomocí bitmap a display listů.

16 zdrojový kód HTML kód (syntaxe)
Vykreslení pixmapy v režimu RGB.

17 zdrojový kódHTML kód (syntaxe)
Vykreslení pixmapy se zapnutým zrcadlením.

18 zdrojový kód HTML kód (syntaxe)
Prohození bitů v pixmapě pomocí změny režimu ukládání pixelů.

19 zdrojový kódHTML kód (syntaxe)
Čtení pixelů z framebufferu.

20 zdrojový kód HTML kód (syntaxe)
Kopírování pixelů v barvových bufferech.

21 zdrojový kódHTML kód (syntaxe)
Změna kopírovaných pixelů v barvových bufferech.

22 zdrojový kód HTML kód (syntaxe)
Zjištění informací o jednotlivých bufferech.

23 zdrojový kódHTML kód (syntaxe)
Základy práce s ortografickou kamerou.

24 zdrojový kód HTML kód (syntaxe)
Změna způsobu vykreslování tělesa.

25 zdrojový kódHTML kód (syntaxe)
Použití double-bufferingu při tvorbě animací.

26 zdrojový kód HTML kód (syntaxe)
Základy práce s perspektivní kamerou.

27 zdrojový kódHTML kód (syntaxe)
Práce s pamětí hloubky.

28 zdrojový kód HTML kód (syntaxe)
Rotace a posun tělesa pomocí myši – základ pro další příklady.

29 zdrojový kódHTML kód (syntaxe)
Výpis počtu ořezávacích rovin.

30 zdrojový kód HTML kód (syntaxe)
Ořezání tělesa rovinou x-z.

31 zdrojový kódHTML kód (syntaxe)
Nastavování parametrů ořezávací roviny.

32 zdrojový kód
Ukázka použití funkce glArrayElement().

33 zdrojový kódHTML kód (syntaxe)
Ukázka použití funkce glDrawArrays().

34 zdrojový kód HTML kód (syntaxe)
Ukázka použití funkce glDrawElement().

35 zdrojový kódHTML kód (syntaxe)
Jednoduché použití grafického efektu mlhy.

36 zdrojový kód HTML kód (syntaxe)
Vykreslování objektů se zapnutým a vypnutým efektem mlhy.

37 zdrojový kódHTML kód (syntaxe)
Přidání podpory mlhy do komplexního příkladu z předchozích dílů.

38 zdrojový kód HTML kód (syntaxe)
Vykreslení tělesa osvětleného ambientním světlem.

39 zdrojový kódHTML kód (syntaxe)
Vykreslení tělesa osvětleného difúzním světlem.

40 zdrojový kód HTML kód (syntaxe)
Změna barvy difúzního světla.

41 zdrojový kódHTML kód (syntaxe)
Přidání podpory pro osvětlení do komplexního příkladu z minulých dílů.

42 zdrojový kód HTML kód (syntaxe)
Zobrazení tělesa s odlesky a ambientní i difúzní složkou světla. Flat stínování.

43 zdrojový kódHTML kód (syntaxe)
Zobrazení tělesa s odlesky a ambientní i difúzní složkou světla. Gouraudovo stínování.

44 zdrojový kód HTML kód (syntaxe)
Způsob definice normálových vektorů u plošek.

45 zdrojový kódHTML kód (syntaxe)
Použití normálových vektorů, které nejsou normalizované.

46 zdrojový kód HTML kód (syntaxe)
Použití bodového zdroje světla.

47 zdrojový kódHTML kód (syntaxe)
Použití směrového zdroje světla.

48 zdrojový kód HTML kód (syntaxe)
Osvětlení tělesa více zdroji světla.

49 zdrojový kódHTML kód (syntaxe)
Světelný zdroj se zápornými světelnými složkami.

50 zdrojový kód HTML kód (syntaxe)
Použití reflektorového zdroje světla.

51zdrojový kód HTML kód (syntaxe)
Světelný zdroj s neměnnou pozicí ve scéně.

52 zdrojový kód HTML kód (syntaxe)
Světelný zdroj, který se pohybuje současně s kamerou.

53zdrojový kód HTML kód (syntaxe)
Kombinace dvou světelných zdrojů, jeden je pevný a druhý pohyblivý.

54 zdrojový kód HTML kód (syntaxe)
Animace světelného zdroje s využitím zásobníku matic.

55zdrojový kód HTML kód (syntaxe)
Získání informací o maximální velikosti textury.

56 zdrojový kód HTML kód (syntaxe)
Vykreslení čtverce s nanesenou texturou.

57zdrojový kód HTML kód (syntaxe)
Změna souřadnic v textuře.

58 zdrojový kód HTML kód (syntaxe)
Zobrazení trojrozměrného tělesa s nanesenou texturou.

59zdrojový kód HTML kód (syntaxe)
Opakování 2D textury v obou směrech.

60 zdrojový kód HTML kód (syntaxe)
Protažení 2D textury v obou směrech.

61zdrojový kód HTML kód (syntaxe)
Protažení 2D textury v jednom směru, opakování ve směru druhém.

62 zdrojový kód HTML kód (syntaxe)
Stejné jako předchozí příklad, ale s prohozením směrů opakování a protažení.

63zdrojový kód HTML kód (syntaxe)
Použití mipmapy bez filtrace.

64 zdrojový kód HTML kód (syntaxe)
Použití mipmapy s bilineární interpolací texelů.

65zdrojový kód HTML kód (syntaxe)
Použití mipmapy s interpolací barvy ze dvou textur.

66 zdrojový kód HTML kód (syntaxe)
Použití mipmapy s bilineární interpolací texelů a lineární interpolací barvy.

67zdrojový kód HTML kód (syntaxe)
Načtení textur z BMP souborů, vykreslení 3D scény s fotkou Rootky :-)

68 zdrojový kód HTML kód (syntaxe)
Načtení textur z TGA souborů, vykreslení 3D scény.

69zdrojový kód HTML kód (syntaxe)
Vykreslování těles s povoleným blendingem, poloprůhlednost.

70 zdrojový kód HTML kód (syntaxe)
Vykreslení tělesa s nanesenou texturou bez osvětlení.

71zdrojový kód HTML kód (syntaxe)
Vykreslení tělesa s nanesenou texturou a s osvětlením, režim GL_DECAL.

72 zdrojový kód HTML kód (syntaxe)
Vykreslení tělesa bez nanesené textury, ale s osvětlením.

73zdrojový kód HTML kód (syntaxe)
Vykreslení tělesa s nanesenou texturou a s osvětlením, režim GL_MODULATE.

74 zdrojový kód HTML kód (syntaxe)
Zobrazení tělesa s nanesenou texturou, automatické souřadnice do textury, automatické normály.

75zdrojový kód HTML kód (syntaxe)
Zobrazení tělesa s nanesenými jednorozměrnými konturami. Výpočet texturovacích souřadnic z polohy vertexů.

76 zdrojový kód HTML kód (syntaxe)
Zobrazení tělesa s nanesenými jednorozměrnými konturami. Výpočet texturovacích souřadnic v pohledovém prostoru.

77zdrojový kód HTML kód (syntaxe)
Ukázka použití mapování prostředí (environment mapping).

78 zdrojový kód HTML kód (syntaxe)
Kombinace lineárního a sférického environment mappingu.

79zdrojový kód HTML kód (syntaxe)
Použití scissor testu při zákazu překreslení části scény.

80 zdrojový kód HTML kód (syntaxe)
Použití stencil bufferu (paměti šablony) při výběru plochy pro vykreslování.

81zdrojový kód HTML kód (syntaxe)
Maskování zápisu do jednotlivých barevných složek barvových bufferů.

Odkazy na příkazy OpenGL rozdělené podle jednotlivých dílů

I

II

III IV V VI VII VIII

IX X XI XII XIII XIV

XV XVI XVII XVIII XIX XX

XXI XXII XXIII XXIV XXV XXVI

XXVII XXVIII XXIX XXX XXXI XXXII

I /clanek/1713
žádné příkazy neuvedeny

II /clanek/1722
glColor3f, glColor3b, glColor4b, glVertex2i, glVertex2f, glVertex2d, glVertex3d, glVertex3f, glVertex3i, glVertex4d, glVertex4f, glVertex4i, glClearColor, glClear, glBegin, glEnd, glFlush

III /clanek/1731
glBegin, glEnd

IV /clanek/1740
glBegin, glEnd, glPointSize, glGetFloatv, glEnable, glDisable, glLineWidth, glLineStipple, glPolygonMode, glFrontFace, glCullFace, glPolygonStipple

V /clanek/1751
glMatrixMode, glGetIntegerv, glLoadIdentity, glLoadMatrixd, glLoadMatrixf, glMultMatrixd, glMultMatrixf, glTranslated, glTranslatef, glScaled, glScalef, glRotated, glRotatef, glGetDoublev, glGetFloatv

VI /clanek/1761
glLoadIdentity, glTranslatef, glRotatef, glPushMatrix, glPopMatrix, glGetIntegerv

VII /clanek/1770
glPixelStorei, glGetFloatv, glGetBooleanv, glBitmap

VIII /clanek/1780
glBitmap, glNewList, glEndList, glCallList, glCallLists, glListBase, glGetLists

IX /clanek/1791
glDrawPixels, glPixelTransfer, glPixelZoom, glPixelStorei, glDrawBuffer

X /clanek/1801
glReadPixels, glDrawPixels, glPixelTransferi, glPixelTransferf

XI /clanek/1812
žádné příkazy neuvedeny

XII /clanek/1821
glClear, glDrawBuffer

XIII /clanek/1833
glOrtho, glFrustum, gluLookAt, gluPerspective, glMatrixMode, glLoadIdentity, glFlush

XIV /clanek/1843
gluLookAt, glOrtho, glFrustum, glMatrixMode, glLoadIdentity, gluPerspective, glEnable, glClearDepth, glDepthFunc, glClear

XV /clanek/1854
glOrtho, glFrustum, gluPerspective, glClipPlane, glGetIntegerv, glEnable, glDisable, glIsEnabled, glBegin, glEnd, glGetClipPlane

XVI /clanek/1864
glBegin, glEnd, glTexCoord, glMaterial, glEdgeFlag, glVertex, glVertexPointer, glEnableClien­tState, glDisableClien­tState, glIsEnabled, glColorPointer, glIndexPointer, glNormalPointer, glTexCoordPointer, glEdgeFlagPointer, glArrayElement, glDrawElements, glDrawArrays

XVII /clanek/1874
glEnable, glDisable, glIsEnabled, glGetBooleanv, glFogi, glFogf, glFogfv, glFogiv, glHint, glClearColor

XVIII /clanek/1894
glEnable, glDisable, glLighti, glLightiv, glLightf, glLightfv, glMateriali, glMaterialiv, glMaterialf, glMaterialfv

XIX /clanek/1905
glEnable, glDisable, glShadeModel

XX /clanek/1915
glEnable, glDisable, glIsEnabled, glLightf, glLighti, glLightfv, glLightiv

XXI /clanek/1928
glLightf, glLighti, glLightfv, glLightiv, glViewport, glMatrixMode, glLoadIdentity, glOrtho, glClear, glFlush, glPushMatrix, glRotated, glPopMatrix

XXII /clanek/1940
glDrawPixels

XXIII /clanek/1951
glDrawPixels, glReadPixels, glHint, glEnable, glDisable

XXIV /clanek/1964
glTexParameterf, glTexParameteri, glTexParameterfv, glTexParameteriv, glTexImage1D, glTexImage2D, glTexImage3D

XXV /clanek/1974
glTexParameteri, glPixelStorei, glGenTextures, glBindTexture, glHint, glTexEnvf, glEnable

XXVI /clanek/1978
glTexParameteri, glTexParameterf

XXVII /clanek/1986
žádné příkazy neuvedeny

XXVIII /clanek/1995
glBlendFunc, glEnable, glDepthMask

XXIX /clanek/2004
glTexEnvf, glTexEnvi, glTexEnvfv, glTexEnviv, glTexImage

XXX /clanek/2018
glTexGeni, glTexGenf, glTexGend, glTexGeniv, glTexGenfv, glTexGendv, glTexParameteri, glPixelStorei, glTexEnvi, glHint, glEnable

XXXI /clanek/2022
glXChooseVisual, glXGetConfig, glGetIntegerv, glGetBooleanv, glDrawPixels, glReadPixels, glCopyPixels

XXXII /clanek/2033
glScissor, glEnable, glDisable, glIsEnabled, glGetIntegerv, glAlphaFunc, glStencilFunc, glStencilOp, glDepthFunc, glBlendFunc, glIndexMask, glColorMask, glDepthMask, glStencilMask, glIndexMask, glClear, glClearColor, glClearIndex, glDrawBuffer, glGetDoublev, glClearDepth, glClearAccum, glClearStencil

Odkazy na příkazy OpenGL setříděné podle abecedy

void glAlphaFunc
XXXII

void glArrayElement
XVI

void glBegin
II, III, IV, XV, XVI

void glBindTexture
XXV

void glBitmap
VII, VIII

void glBlendFunc
XXVIII, XXXII

void glCallList
VIII

void glCallLists
VIII

void glClear
II, XII, XIV, XXI, XXXII

void glClearAccum
XXXII

void glClearColor
II, XVII, XXXII

void glClearDepth
XIV, XXXII

void glClearIndex
XXXII

void glClearStencil
XXXII

void glClipPlane
XV

void glColor3b
II

void glColor3f
II

void glColor4b
II

void glColorPointer
XVI

void glCopyPixels
XXXI

void glCullFace
IV

void glDepthFunc
XIV, XXXII

void glDepthMask
XXVIII, XXXII

void glDisable
IV, XV, XVII, XVIII, XIX, XX, XXIII, XXXII

void glDrawArrays
XVI

void glDrawBuffer
IX, XII, XXXII

void glDrawElements
XVI

void glDrawPixels
IX, X, XXII, XXIII, XXXI

void glEdgeFlag
XVI

void glEdgeFlagPointer
XVI

void glEnable
IV, XIV, XV, XVII, XVIII, XIX, XX, XXIII, XXV, XXVIII, XXX, XXXII

void glEnd
II, III, IV, XV, XVI,

void glEndList
VIII

void glFlush
XIII

void glFogf
XVII

void glFogfv
XVII

void glFogi
XVII

void glFogiv
XVII

void glFrontFace
IV

void glFrustum
XIII, XIV, XV

void glGenTextures
XXV

void glGetBooleanv
VII, XVII, XXXI

void glGetClipPlane
XV

void glGetDoublev
V, XXXII

void glGetFloatv
IV, V, VII

void glGetIntegerv
V, VI, XV, XXXI, XXXII

void glHint
XVII, XXIII, XXV, XXX

void glIndexMask
XXXII

void glIndexPointer
XVI

GLboolean glIsEnabled
XV, XVI, XVII, XX, XXXII

void glLightf
XVIII, XX, XXI

void glLightfv
XVIII, XX, XXI

void glLighti
XVIII, XX, XXI

void glLightiv
XVIII, XX, XXI

void glLineStipple
IV

void glLineWidth
IV

void glListBase
VIII

void glLoadIdentity
V, VI, XIII, XIV, XXI

void glLoadMatrixd
V

void glLoadMatrixf
V

void glMaterialf
XVIII

void glMaterialfv
XVIII

void glMateriali
XVIII

void glMaterialiv
XVIII

void glMatrixMode
V, XIII, XIV, XXI

void glMultMatrixd
V

void glMultMatrixf
V

void glNewList
VIII

void glNormalPointer
XVI

void glOrtho
XIII, XIV, XV, XXI

void glPixelStorei
VII, VIII, XXV, XXX

void glPixelTransferf
X

void glPixelTransferi
X

void glPixelZoom
IX

void glPointSize
IV

void glPolygonMode
IV

void glPolygonStipple
IV

void glPopMatrix
VI, XXI

void glPushMatrix
VI, XXI

void glReadPixels
X, XXIII, XXXI

void glRotated
V, XXI

void glRotatef
V, VI

void glScaled
V

void glScalef
V

void glScissor
XXXII

void glShadeModel
XIX

void glStencilFunc
XXXII

void glStencilMask
XXXII

void glStencilOp
XXXII

void glTexCoordPointer
XVI

void glTexEnvf
XXV, XXIX

void glTexEnvfv
XXIX

void glTexEnvi
XXIX, XXX

void glTexEnviv
XXIX

void glTexGend
XXX

void glTexGendv
XXX

void glTexGenf
XXX

void glTexGenfv
XXX

void glTexGeni
XXX

void glTexGeniv
XXX

void glTexImage1D
XXIV

void glTexImage2D
XXIV

void glTexImage3D
XXIV

void glTexParameterf
XXIV, XXVI

void glTexParameterfv
XXIV

void glTexParameteri
XXIV, XXVI

void glTexParameteriv
XXIV

void glTranslated
V

void glTranslatef
V, VI

void glVertex2d
II

void glVertex2f
II

void glVertex2i
II

void glVertex3d
II

void glVertex3f
II

void glVertex3i
II

void glVertex4d
II

void glVertex4f
II

void glVertex4i
II

void glVertexPointer
XVI

void glViewport
XXI

Našli jste v článku chybu?

1. 3. 2004 9:07

Pavel Tišnovský (neregistrovaný)

Ano, taky jsem narazil na par pocitacu (nevim jak jinak popsat skoro vzdy jinou kombinaci system+graficka karta+ovladac), kde byly problemy se zobrazovanim bodu a nekdy i car, zejmena jejich zakoncovanim.

Vypada to tak, ze vetsina ovladacu je optimalizovana na renderovani trojuhelniku a dalsi graficka primitiva, tj. body, cary a bitmapy maji "odflaklou" podporu.

Potom se krome vizualnich chyb stava i to, ze stejna scena se vykresluje rychleji, kdyz je zobrazovana jako polygony, nez kdys se…



29. 2. 2004 17:24

<Head> (neregistrovaný)

tak tohle nepomohlo, ale ona bude asi chyba v ovladaci grafiky, protoze kdyz pouziji softwarove vykreslovani (Mesa) pomoci parametru "-indirect", tak se to vykresli spravne.

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?