Biblioteka OpenGL to zestaw procedur graficznych, których możemy używać w rozmaitych językach programowania dla różnych systemów operacyjnych. Jest to ogólnie uznany standard -- jego znajomość to podstawa do zajmowania się grafiką komputerową.
Książka przedstawia jedynie fragment możliwości OpenGL, wystarczający jednak, by rozpocząć przygodę z programowaniem grafiki trójwymiarowej. W odróżnieniu od innych pozycji poświęconych tej bibliotece, przykłady zostały napisane w języku ObjectPascal (Delphi), co umożliwi także programistom nie posługującym się językami C/C++ rozpoczęcie przygody z grafiką 3D.
W książce omówiono:
Podstawy OpenGL: punkty, linie, trójkąty, wielokąty, kolorowanie
Rysowanie złożonych obiektów za pomocą kwadryk
Posługiwanie się perspektywą i kamerą
Materiały: kolor, połysk, emisję
Zagadnienia związane ze światłem
Tworzenie dynamicznych scen
Składanie przekształceń
Operacje na macierzach
Tworzenie brył
Tekstury i ich właściwości
Napisy w OpenGL
Tworzenie prostej gry
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREĎCI
SPIS TREĎCI
OpenGL. Æwiczenia
Autor: Waldemar Pokuta
ISBN: 83-7361-172-X
Format: B5, stron: 144
Biblioteka OpenGL to zestaw procedur graficznych, których mo¿emy u¿ywaæ
w rozmaitych jêzykach programowania dla ró¿nych systemów operacyjnych.
Jest to ogólnie uznany standard — jego znajomoġæ to podstawa do zajmowania
siê grafik¹ komputerow¹.
Ksi¹¿ka, któr¹ trzymasz w rêku, przedstawia jedynie fragment mo¿liwoġci OpenGL,
wystarczaj¹cy jednak, by rozpocz¹æ przygodê z programowaniem grafiki
trójwymiarowej. W odró¿nieniu od innych pozycji poġwiêconych tej bibliotece, przyk³ady
zosta³y napisane w jêzyku ObjectPascal (Delphi), co umo¿liwi tak¿e programistom
nie pos³uguj¹cym siê jêzykami C/C++ rozpoczêcie przygody z grafik¹ 3D.
W ksi¹¿ce omówiono:
• Podstawy OpenGL: punkty, linie, trójk¹ty, wielok¹ty, kolorowanie
• Rysowanie z³o¿onych obiektów za pomoc¹ kwadryk
• Pos³ugiwanie siê perspektyw¹ i kamer¹
• Materia³y: kolor, po³ysk, emisjê
• Zagadnienia zwi¹zane ze ġwiat³em
• Tworzenie dynamicznych scen
• Sk³adanie przekszta³ceñ
• Operacje na macierzach
• Tworzenie bry³
• Tekstury i ich w³aġciwoġci
• Napisy w OpenGL
• Tworzenie prostej gry
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOĎCIACH
O NOWOĎCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Wstęp...................................................z...................................................z....................
.....................................7
Język programowania ...................................................g................................................ 7
Struktura modułu ...................................................g................................................. 8
Wymagania ...................................................g...................................................g............. 9
Przykłady ...................................................g...................................................g................9
........................................... 11
Rozdział 1. Podstawy...................................................z...................................................z.....
Na początku ...................................................g...................................................g.......... 11
Punkty ...................................................g...................................................g...................12
Rozmiar punktów ...................................................g...................................................g. 16
Linie...................................................g...................................................g...................... 17
Typ linii ...................................................g...................................................g................17
Trójkąty...................................................g...................................................g.................18
Głębia...................................................g...................................................g.................... 19
Widoczność...................................................g...................................................g........... 19
Czworokąty...................................................g...................................................g........... 20
Typ wielokątów ...................................................g...................................................g.... 20
Paski trójkątów ...................................................g...................................................g..... 21
Kolorowanie płaskie ...................................................g................................................ 22
Wierzchołki trójkątów ...................................................g............................................. 22
Kolorowanie płynne ...................................................g................................................ 23
..............................25
Kwadryki z punktów ...................................................g............................................... 25
Linie...................................................g...................................................g...................... 26
Cieniowanie kwadryk ...................................................g.............................................. 27
Rozdział 3. Perspektywa i kamera...................................................z...................................................................... 31
Rozdział 2. Kwadryki ...................................................z...................................................z.................
Perspektywa...................................................g...................................................g.......... 31
Kamera...................................................g...................................................g.................. 32
4
OpenGL. Ćwiczenia
Rozdział 4. Materiał...................................................z...................................................z.................
............................... 35
Rozdział 5. Światło ...................................................z...................................................z..................
Kolor materiału...................................................g...................................................g..... 35
Połysk ...................................................g...................................................g...................36
Emisja ...................................................g...................................................g...................37
Przeźroczystość ...................................................g...................................................g.... 38
Mgła...................................................g...................................................g...................... 38
................................. 41
Włączenie oświetlenia ...................................................g............................................. 41
Światło tła ...................................................g...................................................g............. 42
Światło rozproszone ...................................................g................................................ 43
Rozbłyski ...................................................g...................................................g.............. 44
Pozycja...................................................g...................................................g..................45
Reflektor ...................................................g...................................................g............... 45
Rozmycie ...................................................g...................................................g.............. 47
Rozdział 6. Dynamika sceny...................................................z...................................................z...........
.....................49
Przesuw...................................................g...................................................g................. 49
Obrót ...................................................g...................................................g..................... 50
Skalowanie...................................................g...................................................g............ 51
Kolor ...................................................g...................................................g..................... 52
Światło ...................................................g...................................................g..................52
Reflektor ...................................................g...................................................g............... 53
Ruch kamery...................................................g...................................................g......... 54
Rozmycie ...................................................g...................................................g.............. 54
Rozdział 7. Składanie przekształceń ...................................................z...................................................z..
............ 57
Pierwszy obiekt...................................................g...................................................g..... 57
Obrót wokół własnej osi ...................................................g.......................................... 59
Orbita ...................................................g...................................................g.................... 59
Podorbita...................................................g...................................................g............... 62
Ruch po elipsie ...................................................g...................................................g..... 64
Rozdział 8. Macierze...................................................z...................................................z.................
.............................. 69
Rozdział 9. Tworzenie brył...................................................z...................................................z...........
Pobranie macierzy ...................................................g...................................................g 69
Załadowanie macierzy...................................................g............................................. 70
Macierz tożsamościowa...................................................g........................................... 71
Mnożenie macierzy...................................................g.................................................. 72
..........................77
Sześcian ...................................................g...................................................g................ 77
Czworościan ...................................................g...................................................g......... 79
Ośmiościan ...................................................g...................................................g........... 80
Czternastościan...................................................g...................................................g..... 81
Dwunastościan...................................................g...................................................g...... 83
Dwudziestościan...................................................g...................................................g... 86
Cząsteczka metanu ...................................................g.................................................. 88
Maczuga elegancka...................................................g.................................................. 91
Maczuga profesjonalna...................................................g............................................ 92
Maczuga współczesna ...................................................g............................................. 93
Spis treści
5
Rozdział 10. Tekstury...................................................z...................................................z.................
............................... 95
Rozdział 11. Napisy...................................................z...................................................z...................
Tekstura 1D ...................................................g...................................................g.......... 95
Teksturowanie kwadryk ...................................................g.......................................... 96
Nakładanie tekstury po kawałku...................................................g.............................. 98
Lustro — przeźroczystość tekstur ...................................................g......................... 100
Zdjęcie — bitmapa z pliku ...................................................g.................................... 101
............................... 105
Czcionki bitmapowe ...................................................g.............................................. 105
Kontur ...................................................g...................................................g................. 107
Czcionka 3D ...................................................g...................................................g....... 108
Czcionka teksturowana...................................................g.......................................... 109
Metalowy połysk ...................................................g...................................................g 110
Rozdział 12. Prosta gra 3D ...................................................z...................................................z............
........................ 113
Sześcian ...................................................g...................................................g.............. 113
Oświetlenie ...................................................g...................................................g......... 115
Figura...................................................g...................................................g.................. 117
Obrót sceny...................................................g...................................................g......... 118
Osiem figur ...................................................g...................................................g......... 121
Przesuw...................................................g...................................................g............... 122
Płynny przesuw...................................................g...................................................g... 123
Obrót ...................................................g...................................................g................... 124
Płynny obrót ...................................................g...................................................g....... 126
Skrzynka ...................................................g...................................................g............. 127
Kolizja...................................................g...................................................g................. 129
Napisy ...................................................g...................................................g................. 131
....... 137
Dodatek A Własny komponent GlBox...................................................z...................................................z...
Rozdział 4.
Materiał
W tym rozdziale dodamy właściwości materiału rysowanych obiektów. Kolor, połysk, emisja
światła, przeźroczystość i efekt mgły mogą bardzo ożywiić rysowaną scenę.
Otwórz w Delphi projekt …CwiczeniaR04_MaterialC04_00_PoczatekMaterial.dapr.
Scena zawiera dwanaście obracających się sześcianów. Naszym zadaniem będzie nadać im
różne właściwości.
Kolor materiału
Nowa procedura:
(cid:1)
IN/CVGTKCNHX
HCEGRPCOGRCTCOU — ustawienie materiału obiektów.
Pierwszy argument określa stronę, z której chcemy zmiieniać właściwości materiału
(przód, tył czy obydwie). Drugi parametr określa cechęi, którą chcemy ustawić
().A#/$+ 06A#0 A +((75 to odbijanie światła tła i światła rozproszonego). iOstatni
parametr to wskaźnik do tablicy składowych koloru (iTGFITGGPDNWGCNRJC).
Ćwiczenie 4.1.
Niech pierwsze dwa sześciany mają kolor materiału zbliżony do żółtego, a pozostałe do
niebieskiego.
W procedurze ).4GPFGT dopisz:
RTQEGFWTG6(QTO).4GPFGT
5GPFGT61DLGEV
XCT
KKPVGIGT
36
OpenGL. Ćwiczenia
EQPUV
MCVTGCN
CODAFKH6).#TTC[H
CODAFKH6).#TTC[H
DGIKP
IN NGCT
).A 1.14A$7(( 4A$+6QT).A 26*A$7(( 4A$+6
CđCFQYCPKGRTGMUVCđEGPKCVQľUCOQħEKQYGIQ
IN.QCF+FGPVKV[
1ħYKGVNGPKG
7UVCY1UYKGVNGPKG
IN6TCPUNCVGH
Ō
4[UQYCPKGHKIWT
IN4QVCVGH
Ō
IN4QVCVGH
ŌMCV
HQTKVQFQDGIKP
KHKVJGPIN/CVGTKCNHX
).A(4106A#0 A$# -).A#/$+ 06A#0 A +((75 CODAFKH
GNUGIN/CVGTKCNHX
).A(4106A#0 A$# -).A#/$+ 06A#0 A +((75 CODAFKH
IN2WUJ/CVTKZ
IN4QVCVGH
K
IN6TCPUNCVGH
Ō
IN4QVCVGH
MCV
K
5GUEKCP
IN2QR/CVTKZ
GPF
MCVMCV
GPF
Połysk
Aby uzyskać efekt rozbłysków, należy użyć procedury IN/CVGTKCNHX z drugim parame-
trem równym ).A52 7.#4.
Nowa procedura:
(cid:1)
IN/CVGTKCNH
HCEGRPCOGRCTCO — procedura podobna do poprzedniej.
Jeżeli drugi parametr jest równy ).A5*+0+0 55, to trzeci zmienia wielkość
plamy rozbłysków na obiektach.
Ćwiczenie 4.2.
Dodaj połysk do wszystkich — oprócz pierwszych czterech — sześcianów.
W procedurze ).4GPFGT dopisz:
CODAFKH6).#TTC[H
CODAFKH6).#TTC[H
URGE6).#TTC[H
URGE6).#TTC[H
DGIKP
KHKVJGPIN/CVGTKCNHX
).A(4106A#0 A$# -).A#/$+ 06A#0 A +((75 CODAFK(H
GNUGIN/CVGTKCNHX
).A(4106A#0 A$# -).A#/$+ 06A#0 A +((75 CODAFKH
Rozdział 4. (cid:1) Materiał
37
KHKVJGPIN/CVGTKCNHX
).A(4106A#0 A$# -).A52 7.#4 URGE
GNUGIN/CVGTKCNHX
).A(4106A#0 A$# -).A52 7.#4 URGE
IN2WUJ/CVTKZ
IN4QVCVGH
K
Ćwiczenie 4.3.
Ustaw wielkość plamy rozbłysku na wartość 80 w sześcianaach 6 do 12.
W procedurze ).4GPFGT dopisz:
KHKVJGPIN/CVGTKCNHX
).A(4106A#0 A$# -).A52 7.#4 URGE
GNUGIN/CVGTKCNHX
).A(4106A#0 A$# -).A52 7.#4 URGE
KHKVJGPIN/CVGTKCNH
).A(4106A#0 A$# -).A5*+0+0 55
GNUGIN/CVGTKCNH
).A(4106A#0 A$# -).A5*+0+0 55
IN2WUJ/CVTKZ
IN4QVCVGH
K
Emisja
Aby sprawić, że obiekty same będą emitować światło, należy użyć procedury IN/CVG
TKCNHX z drugim parametrem równym ).A /+55+10.
Ćwiczenie 4.4.
Niech sześciany 8 do 12 zaczną emitować światło zbliżone ado czerwieni.
W procedurze ).4GPFGT dopisz:
URGE6).#TTC[H
URGE6).#TTC[H
GOKU6).#TTC[H
GOKU6).#TTC[H
DGIKP
KHKVJGPIN/CVGTKCNH
).A(4106A#0 A$# -).A5*+0+0 55
GNUGIN/CVGTKCNH
).A(4106A#0 A$# -).A5*+0+0 55
KHKVJGPIN/CVGTKCNHX
).A(4106A#0 A$# -).A /+55+10 GOKU
GNUGIN/CVGTKCNHX
).A(4106A#0 A$# -).A /+55+10 GOKU
IN2WUJ/CVTKZ
IN4QVCVGH
K
38
OpenGL. Ćwiczenia
Przeźroczystość
Aby sprawić, że obiekty staną się przeźroczyste, należy zmienić parametr CNRJC (stopień
przeźroczystości) w tablicy określającej kolor materiału, użyć procedury IN$NGPF(WPE
z odpowiednimi argumentami oraz włączyć przeźroczystiość procedurą IN PCDNG.
Nowa procedura:
(cid:1)
IN$NGPF(WPE
UHCEVQTFHCEVQT — procedura określa sposób, w jaki ma być
obliczana przeźroczystość obiektów. Domyślne użycie iprocedury to:
IN$NGPF(WPE
).A54 A#.2*#).A10 A/+075A54 A#.2*#.
Ćwiczenie 4.5.
Niech sześciany 10 do 12 będą ze szkła.
W procedeurze ).4GPFGT dopisz:
EQPUV
MCVTGCN
CODAFKH6).#TTC[H
CODAFKH6).#TTC[H
URGE6).#TTC[H
KHKVJGPIN/CVGTKCNHX
).A(4106A#0 A$# -).A /+55+10 GOKU
GNUGIN/CVGTKCNHX
).A(4106A#0 A$# -).A /+55+10 GOKU
KHKVJGPIN KUCDNG
).A$. 0
GNUGDGIKP
IN PCDNG
).A$. 0
IN$NGPF(WPE
).A54 A#.2*#).A10 A/+075A54 A#.2*#
GPF
IN2WUJ/CVTKZ
IN4QVCVGH
K
Mgła
Aby uzyskać efekt mgły, należy procedurą IN PCDNG włączyć opcję ).A(1), a procedu-
rami IN(QIK, IN(QIH i IN(QIHX trzeba ustawić jej właściwości.
Nowe procedury:
(cid:1)
IN(QIK
RPCOGRCTCOIN(QIH
RPCOGRCTCO — ustalenie właściwości mgły.
Jeżeli pierwszym argumentem jest ).A(1)A/1 , to drugi argument ustala sposób,
w jaki jest obliczana przeźroczystość mgły. Jeżeli piierwszym argumentem jest
).A(1)A56#46 lub ).A(1)A 0 , to jest ustalany odpowiednio początek i koniec
obszaru mgły;
Rozdział 4. (cid:1) Materiał
39
(cid:1)
IN(QIHX
RPCOGRCTCOU — procedura podobna do poprzedniej. Jeżeli pierwszymi
argumentem jest ).A(1)A 1.14, to drugi wskazuje na tablicę, która określa kolor mgły.
Ćwiczenie 4.6.
Dodaj do sceny efekt czarnej mgły.
W procedurze ).4GPFGT dopisz:
GOKU6).#TTC[H
GOKU6).#TTC[H
HQI QN6).#TTC[H
DGIKP
7UVCY1UYKGVNGPKG
IN6TCPUNCVGH
Ō
/IđC
IN(QIK
).A(1)A/1 ).A.+0 #4
IN(QIHX
).A(1)A 1.14 HQI QN
IN(QIH
).A(1)A56#46
IN(QIH
).A(1)A 0
IN PCDNG
).A(1)
4[UQYCPKGHKIWT
IN4QVCVGH
Ō
IN4QVCVGH
ŌMCV
Rysunek 4.1.
Efekt końcowy
działania programu
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :