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
1. IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI OpenGL. Æwiczenia
Autor: Waldemar Pokuta
KATALOG KSI¥¯EK ISBN: 83-7361-172-X
Format: B5, stron: 144
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA 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
CENNIK I INFORMACJE siê grafik¹ komputerow¹.
Ksi¹¿ka, któr¹ trzymasz w rêku, przedstawia jedynie fragment mo¿liwo ci OpenGL,
ZAMÓW INFORMACJE wystarczaj¹cy jednak, by rozpocz¹æ przygodê z programowaniem grafiki
O NOWO CIACH 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
ZAMÓW CENNIK nie pos³uguj¹cym siê jêzykami C/C++ rozpoczêcie przygody z grafik¹ 3D.
W ksi¹¿ce omówiono:
CZYTELNIA • Podstawy OpenGL: punkty, linie, trójk¹ty, wielok¹ty, kolorowanie
• Rysowanie z³o¿onych obiektów za pomoc¹ kwadryk
FRAGMENTY KSI¥¯EK ONLINE • 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
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
2. Spis treści
Wstęp............................................................................................................................................................... 7
Język programowania ................................................................................................... 7
Struktura modułu .................................................................................................... 8
Wymagania ................................................................................................................... 9
Przykłady ...................................................................................................................... 9
Rozdział 1. Podstawy...................................................................................................................................................... 11
Na początku ................................................................................................................ 11
Punkty ......................................................................................................................... 12
Rozmiar punktów ....................................................................................................... 16
Linie............................................................................................................................ 17
Typ linii ...................................................................................................................... 17
Trójkąty....................................................................................................................... 18
Głębia.......................................................................................................................... 19
Widoczność................................................................................................................. 19
Czworokąty................................................................................................................. 20
Typ wielokątów .......................................................................................................... 20
Paski trójkątów ........................................................................................................... 21
Kolorowanie płaskie ................................................................................................... 22
Wierzchołki trójkątów ................................................................................................ 22
Kolorowanie płynne ................................................................................................... 23
Rozdział 2. Kwadryki .....................................................................................................................................................25
Kwadryki z punktów .................................................................................................. 25
Linie............................................................................................................................ 26
Cieniowanie kwadryk ................................................................................................. 27
Rozdział 3. Perspektywa i kamera ......................................................................................................................... 31
Perspektywa................................................................................................................ 31
Kamera........................................................................................................................ 32
5. 4. Rozdział
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 ywić rysowaną scenę.
Otwórz w Delphi projekt …CwiczeniaR04_MaterialC04_00_PoczatekMaterial.dpr.
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:
IN/CVGTKCNHX
HCEG RPCOG RCTCOU — ustawienie materiału obiektów.
Pierwszy argument określa stronę, z której chcemy zmieniać właściwości materiału
(przód, tył czy obydwie). Drugi parametr określa cechę, którą chcemy ustawić
().A#/$+'06A#0A+((75' to odbijanie światła tła i światła rozproszonego). Ostatni
parametr to wskaźnik do tablicy składowych koloru (TGF ITGGP DNWG CNRJC).
Ć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:
RTQEGFWTG 6(QTO).4GPFGT
5GPFGT 61DLGEV
XCT
K KPVGIGT
9. 5GUEKCP
IN2QR/CVTKZ
GPF
MCV MCV
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:
IN/CVGTKCNH
HCEG RPCOG RCTCO — 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:
CODAFKH 6).#TTC[H
CODAFKH 6).#TTC[H
URGE 6).#TTC[H
URGE 6).#TTC[H
DGIKP
KH K VJGP IN/CVGTKCNHX
).A(4106A#0A$#%- ).A#/$+'06A#0A+((75' CODAFKH
GNUG IN/CVGTKCNHX
).A(4106A#0A$#%- ).A#/$+'06A#0A+((75' CODAFKH
10. Rozdział 4. Materiał 37
KH K VJGP IN/CVGTKCNHX
).A(4106A#0A$#%- ).A52'%7.#4 URGE
GNUG IN/CVGTKCNHX
).A(4106A#0A$#%- ).A52'%7.#4 URGE
IN2WUJ/CVTKZ
IN4QVCVGH
K
11. Ćwiczenie 4.3.
Ustaw wielkość plamy rozbłysku na wartość 80 w sześcianach 6 do 12.
W procedurze ).4GPFGT dopisz:
KH K VJGP IN/CVGTKCNHX
).A(4106A#0A$#%- ).A52'%7.#4 URGE
GNUG IN/CVGTKCNHX
).A(4106A#0A$#%- ).A52'%7.#4 URGE
KH K VJGP IN/CVGTKCNH
).A(4106A#0A$#%- ).A5*+0+0'55
GNUG IN/CVGTKCNH
).A(4106A#0A$#%- ).A5*+0+0'55
IN2WUJ/CVTKZ
IN4QVCVGH
K
12. 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 do czerwieni.
W procedurze ).4GPFGT dopisz:
URGE 6).#TTC[H
URGE 6).#TTC[H
GOKU 6).#TTC[H
GOKU 6).#TTC[H
DGIKP
KH K VJGP IN/CVGTKCNH
).A(4106A#0A$#%- ).A5*+0+0'55
GNUG IN/CVGTKCNH
).A(4106A#0A$#%- ).A5*+0+0'55
KH K VJGP IN/CVGTKCNHX
).A(4106A#0A$#%- ).A'/+55+10 GOKU
GNUG IN/CVGTKCNHX
).A(4106A#0A$#%- ).A'/+55+10 GOKU
IN2WUJ/CVTKZ
IN4QVCVGH
K
13. 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źroczystość procedurą IN'PCDNG.
Nowa procedura:
IN$NGPF(WPE
UHCEVQT FHCEVQT — procedura określa sposób, w jaki ma być
obliczana przeźroczystość obiektów. Domyślne u ycie procedury 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
MCV TGCN
CODAFKH 6).#TTC[H
CODAFKH 6).#TTC[H
URGE 6).#TTC[H
KH K VJGP IN/CVGTKCNHX
).A(4106A#0A$#%- ).A'/+55+10 GOKU
GNUG IN/CVGTKCNHX
).A(4106A#0A$#%- ).A'/+55+10 GOKU
KH K VJGP INKUCDNG
).A$.'0
GNUG DGIKP
IN'PCDNG
).A$.'0
IN$NGPF(WPE
).A54%A#.2*# ).A10'A/+075A54%A#.2*#
GPF
IN2WUJ/CVTKZ
IN4QVCVGH
K
14. 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:
IN(QIK
RPCOG RCTCO IN(QIH
RPCOG RCTCO — 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 pierwszym argumentem jest
).A(1)A56#46 lub ).A(1)A'0, to jest ustalany odpowiednio początek i koniec
obszaru mgły;
15. Rozdział 4. Materiał 39
IN(QIHX
RPCOG RCTCOU — procedura podobna do poprzedniej. Je eli pierwszym
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:
GOKU 6).#TTC[H
GOKU 6).#TTC[H
HQI%QN 6).#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[UQYCPKG HKIWT
IN4QVCVGH
IN4QVCVGH
MCV
Rysunek 4.1.
Efekt końcowy
działania programu