Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00474 013793 11056520 na godz. na dobę w sumie
OpenGL. Leksykon kieszonkowy - książka
OpenGL. Leksykon kieszonkowy - książka
Autor: Liczba stron: 160
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-968-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> gry >> opengl - programowanie
Porównaj ceny (książka, ebook, audiobook).

Biblioteka OpenGL to narzędzie służące do tworzenia realistycznej grafiki trójwymiarowej w programach. Możliwości OpenGL możemy dziś podziwiać w grach komputerowych, animacjach, wizualizacjach i filmowych efektach specjalnych. Większość publikacji dotyczących biblioteki OpenGL przedstawia ją w kontekście języka C++, z poziomu którego faktycznie jest najczęściej wykorzystywana. Jednakże wielu programistów, którzy często rozpoczynają swoją naukę od Pascala i związanego z nim środowiska Delphi, próbuje stosować ją również w połączeniu z tym językiem.

Książka 'OpenGL. Leksykon kieszonkowy' jest przeznaczona właśnie dla tych programistów. Opisuje bibliotekę OpenGL pod kątem zastosowania jej w aplikacjach tworzonych za pomocą Delphi. Przedstawia wszystkie funkcje służące do generowania i wyświetlania grafiki -- począwszy od brył podstawowych, a skończywszy na krzywych NURBS i Bèziera. Pokazuje sposoby oświetlania i teksturowania obiektów w scenie oraz metody importowania siatek stworzonych w programach 3D.

Delphi to nie tylko aplikacje bazodanowe i internetowe. Przekonaj się, że w Delphi można również stworzyć realistyczną animację 3D.

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 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 OpenGL. Leksykon kieszonkowy Autor: Andrzej Or³owski ISBN: 83-7361-968-2 Format: B6, stron: 160 Biblioteka OpenGL to narzêdzie s³u¿¹ce do tworzenia realistycznej grafiki trójwymiarowej w programach. Mo¿liwoġci OpenGL mo¿emy dziġ podziwiaæ w grach komputerowych, animacjach, wizualizacjach i filmowych efektach specjalnych. Wiêkszoġæ publikacji dotycz¹cych biblioteki OpenGL przedstawia j¹ w kontekġcie jêzyka C++, z poziomu którego faktycznie jest najczêġciej wykorzystywana. Jednak¿e wielu programistów, którzy czêsto rozpoczynaj¹ swoj¹ naukê od Pascala i zwi¹zanego z nim ġrodowiska Delphi, próbuje stosowaæ j¹ równie¿ w po³¹czeniu z tym jêzykiem. Ksi¹¿ka „OpenGL. Leksykon kieszonkowy” jest przeznaczona w³aġnie dla tych programistów. Opisuje bibliotekê OpenGL pod k¹tem zastosowania jej w aplikacjach tworzonych za pomoc¹ Delphi. Przedstawia wszystkie funkcje s³u¿¹ce do generowania i wyġwietlania grafiki — pocz¹wszy od bry³ podstawowych, a skoñczywszy na krzywych NURBS i Be`ziera. Pokazuje sposoby oġwietlania i teksturowania obiektów w scenie oraz metody importowania siatek stworzonych w programach 3D. • Typy danych w OpenGL • Metody rzutowania i wyġwietlania sceny 3D na ekranie monitora • Obiekty i bry³y podstawowe • Oġwietlenie • Umieszczanie napisów w scenie • Korzystanie z map bitowych • Materia³y i tekstury • Animacja • Import obiektów 3D Delphi to nie tylko aplikacje bazodanowe i internetowe. Przekonaj siê, ¿e w Delphi mo¿na równie¿ stworzyæ realistyczn¹ animacjê 3D. Spis treści Wstęp ...................................................O......................................... 5 1. OpenGL dla Windows ...................................................O............... 7 Typy Object Pascal i OpenGL Przygotowanie środowiska pracy. Funkcje WGL Aplikacja w oknie Aplikacja pełnoekranowa Komponent (VC) dla Delphi 7 10 13 19 19 2. Biblioteki OpenGL ...................................................O................... 23 Biblioteka standardowa Biblioteka GLU Biblioteki GLUT 23 59 63 3. Metody zobrazowania ...................................................O............64 Rzut prostokątny Rzut perspektywiczny i kamera Organizacja ekranu OpenGL 64 67 72 4. Obiekty podstawowe ...................................................O.............. 74 Punkt Linia Trójkąt Czworokąt Wielokąt 74 78 81 83 84 3 5. Bryły ...................................................O.........................................86 Cylinder Dysk Sfera 87 88 91 6. Krzywe i powierzchnie ...................................................O...........93 Krzywe i powierzchnie Beziera 93 7. Światło ...................................................O................................... 108 Światło tła (otoczenia) Położenie źródła światła w przestrzeni Światło rozproszone Reflektor Rozmycie 109 110 112 112 113 8. Napisy ...................................................O..................................... 116 9. Obrazy w OpenG L ...................................................O..................118 Mapy bitowe Wczytywanie plików BMP Wyświetlanie obrazów w formacie BMP Kopiowanie fragmentu ekranu Powiększenie 118 119 121 124 126 10. Materiał i tekstura ...................................................O................ 128 Materiał Tekstura 128 133 11. Import siatek ...................................................O......................... 140 12. Ruch ...................................................O....................................... 148 Przemieszczenie Obroty Skalowanie 148 150 153 Skorowidz ...................................................O.............................. 154 4 | Spis treści Rozdział 4. Obiekty podstawowe Punkt Punkt stanowi najważniejszy element każdej rysowanej sceny. Wszystkie obiekty rysowane za pomocą procedur OpenGL są zbudowane z punktów. Punkty te mogą wyznaczać wierzchołki obiektów (linia, trójkąt) lub stanowić wypełnienie tych obiektów. Za pomocą punktów można również rysować wykresy funkcji matematycznych czy też dowolne figury ułożone z kolejnych punktów. Aby wyznaczyć położenie punktu i jego wielkość, wykorzystuje się specjalne procedury OpenGL. Bardzo ważnym zagadnieniem jest wzajemna zależność pomiędzy punktem ry- sowanym w OpenGL a pikselem. Piksel jest najmniejszym ob- szarem ekranu, jaki może przy rozdzielczości określonej para- metrami danej karty graficznej w danej chwili być zapalony (zgaszony). Na rozmiar piksela programista nie ma żadnego wpływu (poza zmianą rozdzielczości ekranu). Punkt natomiast posiada rozmiar określony wielkością płaszczyzny rzutowania i zadeklarowaną wielkością. Domyślną wielkością punktu jest 1 (jeden), co nie oznacza wcale, że na ekranie będzie on odpo- wiadał jednemu pikselowi. W przypadku zmiany rozmiaru płaszczyzny rzutowania zmieni się również rozmiar wyświe- tlanego punktu o wielkości jednostkowej (może wynosić kilka lub kilkanaście pikseli). Zagadnienie to jest szczególnie istotne przy imporcie obrazków, jak również podczas wykorzystywa- nia bitmap, których wymiary są określane w pikselach. Rezultat nieskorelowania wymiarów okna grafiki i płaszczyzny rzuto- wania przedstawia rysunek 4.1. 74 Rysunek 4.1. Zależność wymiarów wyświetlania obiektu, którego wymiary określane są w pikselach i w punktach Obrazek z lewej strony został wykonany z wykorzystaniem procedury glDrawPixels(), tzn. narysowano go pikselami, na- tomiast ten z prawej strony jest teksturą nałożoną na kwadrat o takich samych wymiarach, ale określonych w punktach. Wy- miary obrazka wynoszą 128 na 128 pikseli, wymiary kwadratu — 128 na 128 punktów. Okno grafiki określone procedurą glViewPort() ma wymiary 600 na 600 pikseli, a wymiary płasz- czyzny rzutowania zdefiniowane procedurą glOrtho() wyno- szą 400 na 400 punktów. Jak wynika z przedstawionego rysunku, proporcje pomiędzy rzeczywistymi rozmiarami rysunku a obiek- tem o tych samych wymiarach, ale wyrażonych w innych jed- nostkach, są oczywiste. Z powyższego wywodu wynika więc jasno, że piksel to nie to samo co punkt. glPointSize() Deklaracja: procedure glPointSize(Grubość : GLFloat); Działanie: ustala nową wielkość rysowanych punktów. Rozdział 4. Obiekty podstawowe | 75 Uwaga Nowa wielkość rysowanych punktów będzie taka sama dla wszystkich punktów rysowanych po jej ustaleniu. Aby przywrócić domyślną wielkość punktu 1 (jeden), należy po- nownie wywołać procedurę glPointSize(), z parametrem Grubość równym 1 (jeden). glPointSize(5); // Punkt o wielkości 5 jednostek glPointSize(1); // Powrót do wielkości domyślnej glVertex*() Deklaracja: procedure glVertex2*(x, y, z, w : GL**[PGL**]); lub procedure glVertex3*(x, y, z, w : GL**[PGL**]); lub procedure glVertex4*(x, y, z, w : GL**[PGL**]); Uwaga Znak * (gwiazdka) to jedno z: d, f, i, s, dv, fv, iv lub sv. Dwuznak ** (dwie gwiazdki) to odpowiednio: Double, Float, Int lub Short. Działanie: rysuje wierzchołek (punkt) na płaszczyźnie rzutowania, w miejscu określonym parametrami wywołania. Tworzenie takich obiektów jak linie, wielokąty itp. odbywa się za pomocą okre- ślenia położenia ich wierzchołków w przestrzeni. Cyfra przy- rostka określa liczbę wymiarów w przestrzeni, w której będzie umieszczony wierzchołek. Litera v oznacza, że parametry do procedury będą przekazane w postaci tablicy (wektora). Najczę- ściej procedura ta jest wywoływana w postaci: glVertex3f(). Należy w tym miejscu wspomnieć, że liczby typu Double (GLDouble) i Single (GLFloat) są bez konwersji akceptowane przez koprocesor matematyczny (CPU) i z tego też względu należy z nich korzystać, oczywiście jeżeli inne względy nie 76 | OpenGL. Leksykon kieszonkowy wymuszają stosowania innego typu liczb. W powyższym przy- kładzie uwzględniono procedurę glPointSize(), która określa wielkość rysowanych punktów na ekranie. Jeżeli nie wywołamy tej procedury, to wszystkie punkty będą miały domyślną wiel- kość równą 1 (jeden). Dla punktów, podobnie jak dla innych obiektów, można wykorzystać narzędzie do wygładzania kra- wędzi, czyli tzw. antialiasing. W razie zwiększenia rozmiarów punktu okaże się, że ma on kształt kwadratu, co nie zawsze jest pożądane. Aby tego uniknąć, wystarczy wywołać procedurę glEnable() z parametrem GL_POINT_SMOOTH, co spowoduje, że narożniki zostaną zaokrąglone. Należy pamiętać o wywołaniu procedury glDisable(GL_POINT_SMOOTH), jeżeli kolejne punkty mają być rysowane bez wygładzania. Włączanie wygładzania dla punktów o domyślnej wielkości 1.0 jest bezcelowe i nie na- leży go stosować. Poniżej przedstawiono fragment kodu, którego wykonanie powoduje narysowanie punktu bez wygładzania i z wygładzaniem: // Punkt glColor3f(0.0, 0.0, 1.0); // Kolor niebieski // Punkt bez wygładzania glPointSize(95); // Wielkość punktu(95 pikseli); glBegin(GL_POINTS); // Rysowanie punktów glVertex3f(0, 0, 0); // Położenie punktu(Środek okna grafiki OpenGL) glEnd; // Koniec rysowania // Punkt wygładzony glEnable(GL_POINT_SMOOTH); // Włączenie wygładzania (antialiasing) punktu glPointSize(95); glTranslatef(100, 0, 0); glBegin(GL_POINTS); glVertex3f(0, 0, 0); glEnd; glDisable(GL_POINT_SMOOTH); // Wyłączenie wygładzania punktu Rezultat działania powyższego fragmentu kodu ilustruje ry- sunek 4.2. Rozdział 4. Obiekty podstawowe | 77 Rysunek 4.2. Punkt o wielkości 95 jednostek bez wygładzania i po włączeniu wygładzania Uwaga Domyślnie wygładzanie jest wyłączone, a to ze względu na bardzo znaczące spowolnienie pracy programu. Przed włą- czeniem wygładzania należy przeanalizować konieczność jego użycia i wyłączyć, jeżeli przestaje być faktycznie niezbędne. 78 | OpenGL. Leksykon kieszonkowy
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

OpenGL. Leksykon kieszonkowy
Autor:

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ą: