GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie.
|
|
- Wanda Karczewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Bartosz Bazyluk GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie. Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok
2 Kamera w OpenGL Aby opisać jednoznacznie położenie kamery, należy określić: Pozycję p Kierunek widzenia d Wektor pionu u Każdy z tych elementów w przestrzeni 3D jest 3-elementowym wektorem u d p Bartosz Bazyluk 2
3 Kamera w OpenGL Aby łatwo uzyskać w OpenGL macierz transformacji odpowiadającą kamerze umieszczonej w zadanym punkcie, patrzącą w zadanym kierunku i o zadanym wektorze pionu, najlepiej posłużyć się funkcją: glulookat( eyex, eyey, eyez, lookatx, lookaty, lookatz, upx, upy, upz ) eye* - współrzędne XYZ punktu zaczepienia kamery lookat* - współrzędne XYZ punktu, na który ma spoglądać kamera up* - współrzędne XYZ wektora pionu W dalszych rozważaniach dla uproszczenia przyjmiemy, że wektor pionu zawsze będzie równy (0;1;0) Bartosz Bazyluk 3
4 Kamera w OpenGL Należy zwrócić uwagę, że glulookat() nie przyjmuje kierunku widzenia kamery, a punkt na który kamera ma spoglądać Jest to szczególnie istotne, gdy naszym zadaniem jest zaprogramowanie interaktywnej kamery pierwszoosobowej W takim przypadku dużo wygodniej jest przechowywać kierunek widzenia jako wektor jednostkowy Na podstawie pozycji kamery o raz kierunku można łatwo uzyskać współrzędne punktu, który można przekazać do glulookat(). p d Bartosz Bazyluk 4
5 Kamera w OpenGL Należy zwrócić uwagę, że glulookat() nie przyjmuje kierunku widzenia kamery, a punkt na który kamera ma spoglądać Jest to szczególnie istotne, gdy naszym zadaniem jest zaprogramowanie interaktywnej kamery pierwszoosobowej W takim przypadku dużo wygodniej jest przechowywać kierunek widzenia jako wektor jednostkowy Na podstawie pozycji kamery o raz kierunku można łatwo uzyskać współrzędne punktu, który można przekazać do glulookat(). p d Bartosz Bazyluk 5
6 Kamera w OpenGL Należy zwrócić uwagę, że glulookat() nie przyjmuje kierunku widzenia kamery, a punkt na który kamera ma spoglądać Jest to szczególnie istotne, gdy naszym zadaniem jest zaprogramowanie interaktywnej kamery pierwszoosobowej W takim przypadku dużo wygodniej jest przechowywać kierunek widzenia jako wektor jednostkowy Na podstawie pozycji kamery o raz kierunku można łatwo uzyskać współrzędne punktu, który można przekazać do glulookat(). d p+d p Bartosz Bazyluk 6
7 Ruch kamery Zadanie: Stworzyć interaktywną kamerę pierwszoosobową Możliwości ruchu: Krok w przód/tył Krok w lewo/prawo (prostopadle do kierunku przód/tył) Obrót w jednej płaszczyźnie (wokół osi y) Sterowanie za pomocą klawiatury W/S/A/D ruch Q/E obrót Bartosz Bazyluk 7
8 Stan kamery Reprezentacja stanu kamery w pamięci Konieczne jest zapamiętanie trzech wektorów 3-elementowych: Położenia Kierunku Pionu Sugerowane jest utworzenie struktury przechowującej trzy składowe XYZ: struct vec3 { float x, y, z; }; Wówczas stan kamery można przedstawić następująco: struct SCameraState { vec3 pos; vec3 dir; vec3 up; }; Bartosz Bazyluk 8
9 Stan kamery Jako że dla uproszczenia przyjęliśmy, że wektor pionu jest stały, możemy go pominąć Przydatne może okazać się przechowanie aktualnej prędkości przesuwania kamery Np. płynne wygaszanie ruchu Zatem struktura stanu kamery może przyjąć następującą postać: struct SCameraState { vec3 pos; vec3 dir; float speed; }; Na potrzeby zadania utworzymy globalną instancję tej struktury i nazwiemy ją player SCameraState player; Bartosz Bazyluk 9
10 Stan kamery W takiej sytuacji, możemy każdorazowo zasilać wywołanie glulookat() następującymi danymi: glulookat( player.pos.x, player.pos.y, player.pos.z, player.pos.x + player.dir.x, player.pos.y + player.dir.y, player.pos.z + player.dir.z, 0, 1, 0 ); Bartosz Bazyluk 10
11 Obsługa klawiatury Aktualizacja stanu kamery powinna odbywać się w odpowiedzi na wciśnięcie klawiszy przez użytkownika Jak dowiedzieć się, kiedy użytkownik wciska, a kiedy puszcza dane klawisze? GLUT oferuje dostęp do zdarzeń, które związane są z klawiaturą Poprzez ustawienie własnych callbacków jako obsługi tych zdarzeń, możemy odpowiedzieć na ich wystąpienie Z naszego punktu widzenia istotne będą: glutkeyboardfunc() zachodzi, gdy zostanie wciśnięty klawisz glutkeyboardupfunc() - zachodzi, gdy zostanie puszczony klawisz Funkcje obsługujące oba te zdarzenia powinny przyjmować następujące trzy parametry: unsigned int key kod ASCII klawisza int x, int y położenie kursora myszy w momencie zdarzenia Bartosz Bazyluk 11
12 Obsługa klawiatury glutkeyboardfunc() zachodzi: Natychmiastowo* w momencie wciśnięcia klawisza Jest powtarzane tak długo, jak jest wciśnięty klawisz Pierwsze powtórzenie po opóźnieniu Częstotliwość kontrolowana przez BIOS/system operacyjny Jeśli bezpośrednio użyjemy tego zdarzenia do kontroli ruchu kamery, to w momencie przytrzymania klawisza kamera zrobi skok do przodu, zatrzyma się i później ruszy dalej Opóźnienie po pierwszy kroku jest niedopuszczalne! Częstotliwość ruchów różna na różnych komputerach! glutkeyboardupfunc() - zachodzi: Natychmiastowo* w momencie puszczenia klawisza * Natychmiastowo oznacza najbliższy nadchodzący moment przetwarzania komunikatów. (wciśnięcie) (puszczenie) t Bartosz Bazyluk 12
13 Obsługa klawiatury Jak rozwiązać problem opóźnienia i częstotliwości glutkeyboardfunc()? Tablica przechowująca aktualny stan każdego klawisza (znaku ASCII) Wartości boolowskie: false gdy puszczony, true gdy wciśnięty Gdy glutkeyboardfunc(), wtedy ustawiamy odpowiadający element tablicy na true Gdy glutkeyboardupfunc(), wtedy ustawiamy na false bool keystate[256]; glutkeyboardfunc(onkeypress); glutkeyboardupfunc(onkeyup); void OnKeyPress(unsigned char key, int x, int y) { keystate[key] = true; } void OnKeyUp(unsigned char key, int x, int y) { keystate[key] = false; } Bartosz Bazyluk 13
14 Obsługa klawiatury Problem częstotliwości najłatwiej można rozwiązać wykonując aktualizację stanu ze stałym krokiem czasowym Podczas takiej aktualizacji sprawdzamy w tablicy klawiszy, czy nie są wciśnięte te odpowiedzialne za ruch kamery Jeśli są, dokonujemy zmian ustawienia kamery Krok czasowy w prostej implementacji może być zbliżony do 1/60s, czyli 16,(6)ms GLUT oferuje możliwość ustawienia zdarzenia, które zajdzie za zadany okres czasu gluttimerfunc(unsigned int time, void(*callback) (int), int value) Jedno przypisanie obsługi tego zdarzenia wykona się tylko raz gluttimerfunc(16, OnTimer, 0); void OnTimer(int value) { gluttimerfunc(16, OnTimer, 0); // Tutaj aktualizacja stanu } Bartosz Bazyluk 14
15 Obsługa klawiatury Dodatkowo, przydatne jest wprowadzenie własnego, wirtualnego "zdarzenia" wywoływanego tylko raz gdy zostanie wciśnięty klawisz Nazwijmy je OnKeyDown Będzie wyzwalane w OnKeyPress, ale tylko jeśli wcześniej dany klawisz nie był wciśnięty void OnKeyDown(unsigned char key) { //... } void OnKeyPress(unsigned char key, int x, int y) { if (!keystate[key]) { OnKeyDown(key); } keystate[key] = true; } Takie zdarzenie jest wygodne do obsługi rzeczy, które włącza/wyłącza się danym klawiszem Bartosz Bazyluk 15
16 Ruch kamery w przód/tył Aby zrealizować taki ruch, trzeba zmodyfikować położenie punktu zaczepienia kamery "Przód" w danym momencie odpowiada wektorowi kierunku kamery Pozycję po przesunięciu obliczamy w prosty sposób: p ' = p+ speed d p p' d d p p' Mała prędkość (mnożnik) Duża prędkość (mnożnik) Bartosz Bazyluk 16
17 Ruch kamery w przód/tył Aby zrealizować poruszanie się w przód, w funkcji aktualizującej stan kamery, modyfikujemy pozycję: void OnTimer(int value) { gluttimerfunc(16, OnTimer, 0); if (keystate['w']) { player.pos.x += player.dir.x * player.speed; player.pos.y += player.dir.y * player.speed; player.pos.z += player.dir.z * player.speed; } } Ruch do tyłu realizujemy poprzez odejmowanie zamiast dodawania Warto zwrócić uwagę, że 'w' i 'W' to dwa różne klawisze i zdarzenia dla jednego nie pokrywają się ze zdarzeniami drugiego Bartosz Bazyluk 17
18 Ruch kamery w bok Aby uwzględnić kierunek widzenia kamery, ruszając się na boki należy poruszać się po kierunku prostopadłym W założeniu mamy poruszać się tylko po płaszczyźnie XZ e p' d p p ' = p+ speed e, e d Jak wyznaczyć wektor prostopadły do danego? d =(d x d y d z) e=( d z 0 d x ) Bartosz Bazyluk 18
19 Obrót kamery Obrót kamery jest zmianą kierunku jej widzenia, bez wpływu na punkt zaczepienia W założeniu mamy poruszać się tylko po płaszczyźnie XZ Rezultatem jest wektor kierunku obrócony o zadany kąt Jak wyliczyć jego współrzędne? d p d' Bartosz Bazyluk 19
20 Obrót wektora kierunku w 2D y Dla uproszczenia sprowadźmy problem do dwóch wymiarów. d Będziemy dokonywać obrotu tylko w obrębie jednej płaszczyzny, którą roboczo nazwiemy x/y. x Chcąc poruszać się po płaszczyźnie x/z układu współrzędnych OpenGL należy odpowiednio zmienić oznaczenie osi! Bartosz Bazyluk 20
21 Obrót wektora kierunku w 2D y Chcemy dokonać obrotu kamery o zadany kąt α. d α x Bartosz Bazyluk 21
22 Obrót wektora kierunku w 2D y d Naszym wynikiem powinien być nowy wektor kierunku d', uzyskany po obróceniu pierwotnego wektora d wokół początku układu współrzędnych. α d' x Bartosz Bazyluk 22
23 Obrót wektora kierunku w 2D y d = (x d ; y d ) Można przyjąć, że wektory zaczepione w początku układu współrzędnych to położenia punktów znajdujących się na ich końcach. d' = (x d '; y d ') x Bartosz Bazyluk 23
24 Obrót wektora kierunku w 2D y d = (x d ; y d ) Inny sposób opisania położenia punktu na płaszczyźnie: współrzędne biegunowe ϕ r d' = (x d '; y d ') Położenie definiuje się jako odległość od bieguna (u nas: pocz. układu współrzędnych) oraz kąt pomiędzy osią biegunową (u nas: +y), a promieniem wodzącym. d =(x d ; y d )=(r ;ϕ) współrzędne kartezjańskie współrzędne biegunowe x Bartosz Bazyluk 24
25 Obrót wektora kierunku w 2D y d = (x d ; y d ) Aby wyliczyć współrzędne biegunowe odpowiadające kartezjańskim, wystarczy posłużyć się dwoma prostymi wzorami. ϕ r d' = (x d '; y d ') x Funkcja cyklometryczna atan2 jest dwuargumentową odmianą funkcji arcus tangens, biorącą pod uwagę ćwiartkę układu w której znajduje się zadany kąt. [ d =( x d ; y d )=(r ;ϕ) r= x 2 + y 2 ϕ=atan2( y, x) Bartosz Bazyluk 25
26 Obrót wektora kierunku w 2D y d = (x d ; y d ) Pamiętamy, że nasz wektor kierunku jest zawsze wektorem jednostkowym. W takim razie długość promienia wodzącego r będzie zawsze równa 1. ϕ r=1 d' = (x d '; y d ') x d =(x d ; y d )=(r ;ϕ)=(1 ;ϕ) r= x 2 + y 2 =1 ϕ=atan2( y, x) Bartosz Bazyluk 26
27 Obrót wektora kierunku w 2D y d = (x d ; y d ) Zwróćmy uwagę, że we współrzędnych biegunowych podczas obracania wektora, ulegnie zmianie tylko jedna współrzędna. ϕ α d' = (x d '; y d ') x Nowy kąt zostanie powiększony o wartość kąta α o który dokonujemy obrotu. d =(x d ; y d )=(r ;ϕ)=(1 ;ϕ) r= x 2 + y 2 =1 ϕ=atan2( y, x) d '=(1 ;ϕ+α) Bartosz Bazyluk 27
28 Obrót wektora kierunku w 2D y d = (x d ; y d ) Mając współrzędne biegunowe wektora po dokonaniu obrotu, wystarczy powrócić do kartezjańskiego układu współrzędnych. ϕ α d' = (x d '; y d ') x Służą do tego dwa proste wzory. d =(x d ; y d )=(r ;ϕ)=(1 ;ϕ) r= x 2 + y 2 =1 ϕ=atan2( y, x) d '=(1 ;ϕ+α) x=r cos(ϕ) y=r sin(ϕ) Bartosz Bazyluk 28
29 Obrót wektora kierunku w 2D y d = (x d ; y d ) Należy pamiętać, że r=1, przez co sprawa jest jeszcze prostsza. ϕ α d' = (x d '; y d ') x d =(x d ; y d )=(r ;ϕ)=(1 ;ϕ) r= x 2 + y 2 =1 ϕ=atan2( y, x) d '=(1 ;ϕ+α)=(cos(ϕ+α);sin(ϕ+α)) x=r cos(ϕ) y=r sin(ϕ) Bartosz Bazyluk 29
30 Oświetlenie Celem symulacji oświetlenia jest taka modyfikacja kolorów obiektów, aby sprawiały wrażenie oświetlonych fizycznymi źródłami światła Należy rozróżnić dwie rzeczy: Oświetlenie model matematyczny pozwalający na wyliczenie koloru z uwzględnieniem wpływu źródeł światła, cech materiału i środowiska Cieniowanie (ang. shading nie shadowing!) sposób dystrybucji koloru pomiędzy miejscami, dla których jest on wyliczony Źródło obrazów: Płaskie Gouraud Phonga Bartosz Bazyluk 30
31 Oświetlenie Najczęściej używanym modelem oświetlenia w grafice czasu rzeczywistego jest model Phonga Niezależnie od tego, czy stosujemy cieniowanie płaskie, Gouraud, czy Phonga model oświetlenia jest czymś osobnym Model Phonga opiera się na rozbiciu światła na trzy komponenty: I A =(i r A i g A i b A) I I D =(ir D i g D i bd) S =(ir S i gs i bs) Źródło obrazów: I=I A + I D + I S Bartosz Bazyluk 31
32 Światło i materiały Komponenty Ambient, Diffuse oraz Specular określamy zarówno dla każdego ze źródeł światła, jak i dla materiału z którego zbudowana jest powierzchnia obiektu L L A =(l r A l g A l ba) L D =(l r D l g D l bd) S =(l r S l g S l bs) M M A =(m r A m g A m ba) M D =(mr D m g D m bd) S =(mrs m g S m bs) Bartosz Bazyluk 32
33 Światło i materiały Komponenty Ambient, Diffuse oraz Specular określamy zarówno dla każdego ze źródeł światła, jak i dla materiału z którego zbudowana jest powierzchnia obiektu L L A =(l r A l g A l ba) L D =(l r D l g D l bd) S =(l r S l g S l bs) M M A =(m r A m g A m ba) M D =(mr D m g D m bd) S =(mrs m g S m bs) Bartosz Bazyluk 33
34 Wektory normalne W celu określenia skierowania punktu na powierzchni bryły, definiuje się tzw. wektory normalne Są to wektory, które są prostopadłe do powierzchni Zazwyczaj są to wektory jednostkowe Bartosz Bazyluk 34
35 Wektory normalne W celu określenia skierowania punktu na powierzchni bryły, definiuje się tzw. wektory normalne Są to wektory, które są prostopadłe do powierzchni Zazwyczaj są to wektory jednostkowe Wektory normalne określa się dla wierzchołków Bartosz Bazyluk 35
36 Wektory normalne W celu określenia skierowania punktu na powierzchni bryły, definiuje się tzw. wektory normalne Są to wektory, które są prostopadłe do powierzchni Zazwyczaj są to wektory jednostkowe Wektory normalne określa się dla wierzchołków Na ich podstawie można określić wpływ światła padającego w zadanym kierunku na kolor powierzchni obiektu Bartosz Bazyluk 36
37 Wektory normalne W celu uzyskania łagodnych krawędzi, wektory normalne powinny być identyczne dla wszystkich ścian zbiegających się w danym wierzchołku Przykład (rzut boczny): W celu przybliżenia gładkiej niebieskiej powierzchni z użyciem czerwonych ścian, należy stosować identyczne wektory normalne w wierzchołkach Źródło obrazów: Bartosz Bazyluk 37
38 Wektory normalne W OpenGL wektory normalne definiujemy w sposób podobny do pozycji wierzchołków glnormal3f(0.0f, 1.0f, 0.0f); Ostatnio określony wektor normalny zostaje powiązany z każdym nowo tworzonym wierzchołkiem glnormal3f(0.0f, 1.0f, 0.0f); glvertex3f(0.0f, 0.0f, 0.0f); // normal = (0;1;0) glnormal3f(0.0f, 0.0f, 1.0f); glvertex3f(1.0f, 0.0f, 0.0f); // normal = (0;0;1) glvertex3f(0.0f, 1.0f, 0.0f); // normal = (0;0;1) glvertex3f(0.0f, 0.0f, 1.0f); // normal = (0;0;1) Bartosz Bazyluk 38
39 Model oświetlenia Phonga W tym wypadku iloczyn dwóch wektorów rozumiemy jako iloczyn ich komponentów! Kolor w danym wierzchołku/fragmencie (zależnie, czy cieniowanie Gouraud, czy Phonga), oblicza się sumując wartości dla wszystkich źródeł światła: lights I = i=1 Dla każdego źródła światła: I i A + I i D +I i S Komponent Ambient to prosty iloczyn wartości RGB światła i wartości RGB materiału I A =L A M A Komponent Diffuse dodatkowo zależy od współczynnika lambertowskiego, zależnego od kąta pomiędzy wektorem normalnym N a wektorem kierunku padania światła L I D =k D L D M D, k D = L N Komponent Specular zależy od spójności wektora odbitego R oraz wektora kierunku obserwacji V; wielkość rozbłysku zależy od parametru shininess α I S =k S L S M S, k S =( R V ) α, R=2( L N ) N L Bartosz Bazyluk 39
40 Światło w OpenGL Model oświetlenia Phonga jest częścią nieprogramowalnego potoku renderowania w OpenGL Włączenie obliczania oświetlenia: glenable(gl_lighting); Nieprogramowalny potok renderowania OpenGL oferuje dwa rodzaje cieniowania Cieniowanie płaskie glshademodel(gl_flat); Cieniowanie Gouraud (domyślne; per-vertex) glshademodel(gl_smooth); Nie ma możliwości włączenia cieniowania Phonga (per-fragment) nie pisząc własnych programów cieniujących Bartosz Bazyluk 40
41 Światło w OpenGL W nieprogramowalnym potoku renderowania OpenGL (ang. fixed pipeline) mamy możliwość zdefiniowania przynajmniej ośmiu źródeł światła (zależy od implementacji) Do źródeł światła odwołujemy się z użyciem stałych: GL_LIGHT0, GL_LIGHT1, GL_LIGHT2,... Można też użyć sposobu: GL_LIGHT Aby dane źródło światła działało, musi zostać włączone: glenable(gl_light1); Domyślnie tylko GL_LIGHT0 jest włączone Poszczególne komponenty źródła źwiatła definiujemy następująco: float l1amb[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; float l1dif[4] = { 1.0f, 0.0f, 1.0f, 1.0f }; float l1spe[4] = { 0.5f, 0.5f, 0.5f, 1.0f }; gllightfv(gl_light1, GL_AMBIENT, l1amb); gllightfv(gl_light1, GL_DIFFUSE, l1dif); gllightfv(gl_light1, GL_SPECULAR, l1spe); Bartosz Bazyluk 41
42 Materiały Materiał jest cechą danego wierzchołka (analogicznie do koloru ustawianego za pomocą glcolor*()) Po ustawienia materiału i włączeniu oświetlenia, kolory wierzchołków domyślnie nie są już brane pod uwagę Oddzielnie ustawia się materiał strony przedniej i tylnej, w praktyce zazwyczaj używa się jedynie przedniej (GL_FRONT) Materiał ustawia się następująco: float mamb[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; float mdif[4] = { 1.0f, 1.0f, 0.0f, 1.0f }; float mspe[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; glmaterialfv(gl_front, GL_AMBIENT, mamb); glmaterialfv(gl_front, GL_DIFFUSE, mdif); glmaterialfv(gl_front, GL_SPECULAR, mspe); Dodatkowo można określić wartość eksponenty związanej z komponentem specular: glmaterialf(gl_front, GL_SHININESS, 20.0f); Im większe shininess, tym mniejszy rozbłysk Bartosz Bazyluk 42
43 Źródła światła Możemy wyróżnić trzy podstawowe rodzaje źródeł światła: Światła kierunkowe Wszystkie promienie są do siebie równoległe Konieczne jest zdefiniowanie kierunku świecenia W OpenGL: float lightpos[4] = { 0.0f, 0.0f, 1.0f, 0.0f }; gllightfv(gl_light0, GL_POSITION, lightpos); Ważne! Ostatni komponent pozycji musi być równy 0, wtedy źródło światła traktowane jest jako kierunkowe. Inaczej jest ono światłem pozycyjnym. Ważne! Podajemy wartości będące przeciwieństwem kierunku świecenia. W przykładzie promienie będą się rozchodzić w kierunku (0;0;-1) Bartosz Bazyluk 43
44 Źródła światła Możemy wyróżnić trzy podstawowe rodzaje źródeł światła: Światła punktowe Światło pozycyjne, promienie rozchodzą się dookólnie Konieczne jest określenie pozycji źródła światła W OpenGL: float lightpos[4] = { 0.0f, 0.0f, 1.0f, 1.0f }; gllightfv(gl_light0, GL_POSITION, lightpos); Ważne! Ostatni komponent pozycji musi być równy 1, wtedy źródło światła traktowane jest jako pozycyjne. Inaczej jest ono światłem kierunkowym Bartosz Bazyluk 44
45 Źródła światła Możemy wyróżnić trzy podstawowe rodzaje źródeł światła: Światła punktowe (c.d.) Dodatkowo można określić tłumienie wraz z odległością Składa się z trzech komponentów: stałego, liniowego i kwadratowego W OpenGL: 1 a(d )= k c +k l d +k q d 2 gllightf(gl_light0, GL_CONSTANT_ATTENUATION, 2.0f); gllightf(gl_light0, GL_LINEAR_ATTENUATION, 1.0f); gllightf(gl_light0, GL_QUADRATIC_ATTENUATION, 0.5f); Tłumienie wpływa na wszystkie komponenty światła Bartosz Bazyluk 45
46 Źródła światła Możemy wyróżnić trzy podstawowe rodzaje źródeł światła (c.d.): Światła stożkowe (ang. spotlights) Skierowane światło punktowe o ograniczonym kącie Oprócz pozycji, określa się także kierunek światła oraz szerokość kąta świecenia: float lightdir[3] = { 0.0f, 0.0f, 1.0f }; gllightfv(gl_light0, GL_SPOT_DIRECTION, lightdir); gllightf(gl_light0, GL_SPOT_CUTOFF, 45.0f); Bartosz Bazyluk 46
47 Źródła światła Zadania: Stworzyć punktowe źródło światła zawieszone nad sceną Stworzyć dwa punktowe źródła światła z tłumieniem, które można niezależnie poruszać za pomocą klawiszy Bartosz Bazyluk 47
48 Bartosz Bazyluk GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie. Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok
Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok
POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok POTOK RENDEROWANIA W grafice realistycznej stosuje się zwykle podejścia
Gry komputerowe, Informatyka N1, III Rok
Oświetlenie Potok renderowania. Techniki oświetlenia i cieniowania. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok POTOK RENDEROWANIA W grafice realistycznej stosuje się zwykle podejścia
6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/7 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Materiały i oświetlenie 6 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie Specyfikacja biblioteki OpenGL rozróżnia trzy
Grafika Komputerowa, Informatyka, I Rok
KAMERA W SCENIE 3D Pojęcie kamery. Implementacja interaktywnej kamery FPP. Test i bufor głębokości. Grafika Komputerowa, Informatyka, I Rok Kamera Jest to wirtualny koncept opisujący sposób oglądania sceny
Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.
Oświetlenie w OpenGL Oprogramowanie i wykorzystanie stacji roboczych Wykład 8 Dr inż. Tomasz Olas olas@icis.pcz.pl W OpenGL źródło światła w scenie składa się z trzech składowych oświetlenia: otoczenia,
Gry Komputerowe Interaktywna kamera FPP
Gry Komputerowe Interaktywna kamera FPP Michał Chwesiuk Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Wydział Informatyki 28 Marzec 2018 Michał Chwesiuk Laboratorium 2 28 Marzec 2018 1/ 11
Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38
Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego
Światło. W OpenGL można rozróżnić 3 rodzaje światła
Wizualizacja 3D Światło W OpenGL można rozróżnić 3 rodzaje światła Światło otaczające (ambient light) równomiernie oświetla wszystkie elementy sceny, nie pochodzi z żadnego konkretnego kierunku Światło
Światła i rodzaje świateł. Dorota Smorawa
Światła i rodzaje świateł Dorota Smorawa Rodzaje świateł Biblioteka OpenGL posiada trzy podstawowe rodzaje świateł: światło otoczenia, światło rozproszone oraz światło odbite. Dodając oświetlenie na scenie
OpenGL model oświetlenia
Składowe światła OpenGL Światło otaczające (ambient) OpenGL model oświetlenia Nie pochodzi z żadnego określonego kierunku. Powoduje równomierne oświetlenie obiektów na wszystkich powierzchniach i wszystkich
Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach.
Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok, 2018 r. WYŚWIETLANIE OBRAZU Współczesne wyświetlacze
Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny
Laboratorium grafiki komputerowej i animacji Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny Przygotowanie do ćwiczenia: 1. Zapoznać się ze zdefiniowanymi w OpenGL modelami światła i właściwości materiałów.
Oświetlenie obiektów 3D
Synteza i obróbka obrazu Oświetlenie obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Rasteryzacja Spłaszczony po rzutowaniu obraz siatek wielokątowych
Animowana grafika 3D. Opracowanie: J. Kęsik.
Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Powierzchnia obiektu 3D jest renderowana jako czarna jeżeli nie jest oświetlana żadnym światłem (wyjątkiem są obiekty samoświecące) Oświetlenie
Gry Komputerowe - laboratorium 2. Kamera FPP / TPP. mgr inż. Michał Chwesiuk 1/11. Szczecin, r
Gry Komputerowe - laboratorium 2 FPP / TPP mgr inż. Michał Chwesiuk 1/11 a model 2/11 Stwórz nową klasę Player a model Do stworzonej klasy Player w pliku player.h dodaj trzy pola (trzeba dodać #include
OpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
Materiały. Dorota Smorawa
Materiały Dorota Smorawa Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja:
OpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie
Model oświetlenia Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Obliczenie koloru powierzchni (ang. Lighting) Światło biegnie od źródła światła, odbija
OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska
OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera
GRK 4. dr Wojciech Palubicki
GRK 4 dr Wojciech Palubicki Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Projection Matrix Viewport Transform Object Space World Space View Space Clip Space Screen Space Projection
Przekształcenia geometryczne. Dorota Smorawa
Przekształcenia geometryczne Dorota Smorawa Przekształcenia geometryczne Na poprzednich laboratoriach już dowiedzieliśmy się, na czym polegają podstawowe przekształcenia geometryczne. Trzy podstawowe przekształcenia
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy
Wyświetlanie obrazu Bufor klatki, synchronizacja pionowa, pętla główna gry.
Wyświetlanie obrazu Bufor klatki, synchronizacja pionowa, pętla główna gry. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka S1, II Rok, 2018 r. WYŚWIETLACZE WEKTOROWE Korzystając z możliwości
Temat: Transformacje 3D
Instrukcja laboratoryjna 11 Grafika komputerowa 3D Temat: Transformacje 3D Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Bardzo często programując
Wyświetlanie obrazu Techniki wyświetlania obrazu komputerowego.
Wyświetlanie obrazu Techniki wyświetlania obrazu komputerowego. http://bazyluk.net/dydaktyka Grafika Komputerowa i Wizualizacja, Informatyka S1, II Rok WYŚWIETLANIE OBRAZU Techniki wyświetlania obrazu
Rzutowanie DOROTA SMORAWA
Rzutowanie DOROTA SMORAWA Rzutowanie Rzutowanie jest operacja polegająca na tym, aby odpowiednie piksele na płaskim ekranie były wyświetlane w taki sposób, by sprawiać wrażenie trójwymiarowej głębi (przestrzeni
Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok
SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy stworzenie grafiki
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:
Plan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące
IRONCAD IRONCAD 2016 TriBall o Narzędzie pozycjonujące Spis treści 1. Narzędzie TriBall... 2 2. Aktywacja narzędzia TriBall... 2 3. Specyfika narzędzia TriBall... 4 3.1 Kula centralna... 4 3.2 Kule wewnętrzne...
1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych
Instrukcja laboratoryjna 9 Grafika komputerowa 3D Temat: Manipulowanie przestrzenią Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Układ
0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do
0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)
Rozdział 1 Prosta i płaszczyzna 1.1 Przestrzeń afiniczna Przestrzeń afiniczna to matematyczny model przestrzeni jednorodnej, bez wyróżnionego punktu. Można w niej przesuwać punkty równolegle do zadanego
Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie V. Biblioteka OpenGL - oświetlenie sceny
Laboratorium Grafiki Komputerowej i Animacji Ćwiczenie V Biblioteka OpenGL - oświetlenie sceny Sławomir Samolej Rzeszów, 1999 1. Wstęp Większość tworzonych animacji w grafice komputerowej ma za zadanie
Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30
Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego
Etap 1. Rysunek: Układy odniesienia
Wprowadzenie. Jaś i Małgosia kręcą się na karuzeli symetrycznej dwuramiennej. Siedzą na karuzeli zwróceni do siebie twarzami, symetrycznie względem osi obrotu karuzeli. Jaś ma dropsa, którego chce dać
Wektory, układ współrzędnych
Wektory, układ współrzędnych Wielkości występujące w przyrodzie możemy podzielić na: Skalarne, to jest takie wielkości, które potrafimy opisać przy pomocy jednej liczby (skalara), np. masa, czy temperatura.
Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie
Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie Korekcja perspektywy http://en.wikipedia.org/wiki/file:perspective_correct_texture_mapping.jpg GL_TEXTURE_MIN_FILTER Zmniejszanie
Grafika 3D program POV-Ray - 1 -
Temat 1: Ogólne informacje o programie POV-Ray. Interfejs programu. Ustawienie kamery i świateł. Podstawowe obiekty 3D, ich położenie, kolory i tekstura oraz przezroczystość. Skrót POV-Ray to rozwinięcie
Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.
Ćwiczenie 5 - Tworzenie animacji Podczas tworzenia prostej animacji wykorzystywać będziemy okno Timeline domyślnie ustawione na dole okna Blendera (Rys. 1). Proces tworzenia animacji polega na stworzeniu
3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas
3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas oddziaływanie między ciałami, ani też rola, jaką to
W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.
1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy
1. Prymitywy graficzne
1. Prymitywy graficzne Prymitywy graficzne są elementarnymi obiektami jakie potrafi bezpośrednio rysować, określony system graficzny (DirectX, OpenGL itp.) są to: punkty, listy linii, serie linii, listy
Układy współrzędnych
Układy współrzędnych Układ współrzędnych matematycznie - funkcja przypisująca każdemu punktowi danej przestrzeni skończony ciąg (krotkę) liczb rzeczywistych zwanych współrzędnymi punktu. Układ współrzędnych
Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23
Wykład 6 mgr inż. 1/23 jest to technika w grafice komputerowej, której celem jest zwiększenie szczegółowości renderowanych powierzchni za pomocą tekstur. jest to pewna funkcja (najczęściej w formie bitmapy)
OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23
OpenGL : mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/23 Folder z plikami zewnętrznymi (resources) Po odpaleniu przykładowego projektu, nie uruchomi się on poprawnie. Powodem
Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe
Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe Czym są tekstury? Tekstury są tablicowymi strukturami danych o wymiarze od 1 do 3, których elementami są tzw. teksele.
Mechanika ogólna. Kinematyka. Równania ruchu punktu materialnego. Podstawowe pojęcia. Równanie ruchu po torze (równanie drogi)
Kinematyka Mechanika ogólna Wykład nr 7 Elementy kinematyki Dział mechaniki zajmujący się matematycznym opisem układów mechanicznych oraz badaniem geometrycznych właściwości ich ruchu, bez wnikania w związek
Trójwymiarowa grafika komputerowa rzutowanie
Trójwymiarowa grafika komputerowa rzutowanie Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej Rzutowanie w przestrzeni 3D etapy procesu rzutowania określenie rodzaju rzutu określenie
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok OpenGL Open Graphics Library Jest to API pozwalające na renderowanie grafiki w czasie rzeczywistym,
Dodatek A. Spis instrukcji języka Prophio.
Dodatek A. Spis instrukcji języka Prophio. Wszystkie bloczki poza bloczkami z palety robot dotyczą obiektów na scenie, bądź samej sceny. Jedynie bloczki palety robot dotyczą rzeczywistego robota, połączonego
System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.
System graficzny scena 3D algorytm graficzny obraz 2D Potok graficzny 3D Radosław Mantiuk Dane wejściowe Algorytm tworzący obraz wyjściowy na podstawie sceny 3D Dane wyjściowe Wydział Informatyki Zachodniopomorski
MECHANIKA 2 KINEMATYKA. Wykład Nr 5 RUCH KULISTY I RUCH OGÓLNY BRYŁY. Prowadzący: dr Krzysztof Polko
MECHANIKA 2 KINEMATYKA Wykład Nr 5 RUCH KULISTY I RUCH OGÓLNY BRYŁY Prowadzący: dr Krzysztof Polko Określenie położenia ciała sztywnego Pierwszy sposób: Określamy położenia trzech punktów ciała nie leżących
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Laboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.
Laboratorium 1 Część I Podstawy biblioteki graficznej OpenGL. I. Konfiguracja środowiska 1. Ściągamy bibliotekę freeglut i rozpakujemy do głównego folderu dysku systemowego np. C:\freeglut 2. Uruchamiamy
1. Oświetlenie Materiały i powierzchnie
1. Oświetlenie Rzeczywiste światło emitowane przez określone źródło, odbijane jest na milionach powierzchni obiektów, po czym dociera do naszych oczu powodując, że widzimy dane przedmioty. Światło padające
Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak
Modelowanie i wstęp do druku 3D Wykład 1 Robert Banasiak Od modelu 3D do wydruku 3D Typowa droga...czasem wyboista... Pomysł!! Modeler 3D Przygotowanie modelu do druku Konfiguracja Programu do drukowania
Krzywe stożkowe Lekcja II: Okrąg i jego opis w różnych układach współrzędnych
Krzywe stożkowe Lekcja II: Okrąg i jego opis w różnych układach współrzędnych Wydział Matematyki Politechniki Wrocławskiej Okrąg Okrąg jest szczególną krzywą stożkową. Wyznacza nam koło, które jest podstawą
GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu
GRAKO: ŚWIATŁO I CIENIE Metody oświetlania Metody cieniowania Przykłady OŚWIETLENIE: elementy istotne w projektowaniu Rozumienie fizyki światła w realnym świecie Rozumienie procesu percepcji światła Opracowanie
ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ zadania z odpowiedziami
ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ zadania z odpowiedziami Maciej Burnecki opracowanie strona główna Spis treści 1 Wyrażenia algebraiczne indukcja matematyczna 1 Geometria analityczna w R 3 3 Liczby zespolone
Elementy geometrii analitycznej w R 3
Rozdział 12 Elementy geometrii analitycznej w R 3 Elementy trójwymiarowej przestrzeni rzeczywistej R 3 = {(x,y,z) : x,y,z R} możemy interpretować co najmniej na trzy sposoby, tzn. jako: zbiór punktów (x,
Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.
1 Wektory Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem. 1.1 Dodawanie wektorów graficzne i algebraiczne. Graficzne - metoda równoległoboku. Sprowadzamy wektory
54. Układy współrzędnych
54 54. Układy współrzędnych Współrzędne punktów i dostępne układy współrzędnych na płaszczyźnie (2D) omówiono w rozdziale 8. Współrzędne 2D. W tym rozdziale podane zostaną informacje dodatkowe konieczne
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Mechanika. Wykład 2. Paweł Staszel
Mechanika Wykład 2 Paweł Staszel 1 Przejście graniczne 0 2 Podstawowe twierdzenia o pochodnych: pochodna funkcji mnożonej przez skalar pochodna sumy funkcji pochodna funkcji złożonej pochodna iloczynu
Wprowadzenie do rysowania w 3D. Praca w środowisku 3D
Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać
GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie
GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46
3 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 3 1/5 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Rysowanie prymitywów 3 Przygotował: mgr inż. Maciej Lasota 1) Rysowanie prymitywów Podstawową rodziną funkcji wykorzystywanych
GRAFIKA KOMPUTEROWA podstawy matematyczne. dr inż. Hojny Marcin pokój 406, pawilon B5 E-mail: mhojny@metal.agh.edu.pl Tel.
GRAFIKA KOMPUTEROWA podstawy matematyczne dr inż. Hojny Marcin pokój 406, pawilon B5 E-mail: mhojny@metal.agh.edu.pl Tel. (12) 617 46 37 Plan wykładu 1/4 ZACZNIEMY OD PRZYKŁADOWYCH PROCEDUR i PRZYKŁADÓW
Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)
Zbiór trójwymiarowych danych wej$ciowych wykorzystywanych do wygenerowania obrazu wyj$ciowego 2D. Cieniowanie (ang. Shading) Rados"aw Mantiuk Wydzia" Informatyki Zachodniopomorski Uniwersytet Technologiczny
Systemy wirtualnej rzeczywistości. Komponenty i serwisy
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki
BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły
BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły Po uruchomieniu programu Blender zawsze ukaże się nam oto taki widok: Jak
Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r
Gry Komputerowe Laboratorium 4 Teksturowanie Kolizje obiektów z otoczeniem mgr inż. Michał Chwesiuk 1/29 Klasa Stwórzmy najpierw klasę TextureManager, która będzie obsługiwała tekstury w projekcie. 2/29
PODSTAWY RACHUNKU WEKTOROWEGO
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Skalar Definicja Skalar wielkość fizyczna (lub geometryczna)
Rachunek wektorowy - wprowadzenie. dr inż. Romuald Kędzierski
Rachunek wektorowy - wprowadzenie dr inż. Romuald Kędzierski Graficzne przedstawianie wielkości wektorowych Długość wektora jest miarą jego wartości Linia prosta wyznaczająca kierunek działania wektora
Grafika 3D OpenGL część II
#include #include #include float kat=0.0f; void renderujscene(void) { glclearcolor(1.0f,1.0f,1.0f,1.0f); glclear(gl_color_buffer_bit); glpushmatrix(); glrotatef(kat,0,0,1);
Aby opisać strukturę krystaliczną, konieczne jest określenie jej części składowych: sieci przestrzennej oraz bazy atomowej.
2. Podstawy krystalografii Podczas naszych zajęć skupimy się przede wszystkim na strukturach krystalicznych. Kryształem nazywamy (def. strukturalna) substancję stałą zbudowaną z atomów, jonów lub cząsteczek
Układy współrzędnych GUW, LUW Polecenie LUW
Układy współrzędnych GUW, LUW Polecenie LUW 1 Układy współrzędnych w AutoCAD Rysowanie i opis (2D) współrzędnych kartezjańskich: x, y współrzędnych biegunowych: r
1 Temat: Vertex Shader
Instrukcja Architektura procesorów graficznych 1 Temat: Vertex Shader Przygotował: mgr inż. Tomasz Michno 1 Wstęp 1.1 Czym jest shader Shader jest programem (zazwyczaj krótkim), wykonywanym przez kartę
Algebra z geometrią analityczną zadania z odpowiedziami
Algebra z geometrią analityczną zadania z odpowiedziami Maciej Burnecki Spis treści strona główna 1 Wyrażenia algebraiczne, indukcja matematyczna 2 2 Geometria analityczna w R 2 Liczby zespolone 4 4 Wielomiany
Programowanie Procesorów Graficznych
Programowanie Procesorów Graficznych Wykład 1 9.10.2012 Prehistoria Zadaniem karty graficznej było sterowanie sygnałem do monitora tak aby wyświetlić obraz zgodnie z zawartościa pamięci. Programiści pracowali
Algebra z geometrią analityczną zadania z odpowiedziami
Algebra z geometrią analityczną zadania z odpowiedziami Maciej Burnecki opracowanie Spis treści I Wyrażenia algebraiczne, indukcja matematyczna 2 II Geometria analityczna w R 2 4 III Liczby zespolone 5
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
// Potrzebne do memset oraz memcpy, czyli kopiowania bloków
ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using
Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.
1 Spis treści Ćwiczenie 1...3 Tworzenie nowego rysunku...3 Ustawienia Siatki i Skoku...4 Tworzenie rysunku płaskiego...5 Tworzenie modeli 3D...6 Zmiana Układu Współrzędnych...7 Tworzenie rysunku płaskiego...8
Grafika 3D program POV-Ray - 94 -
Temat 12: Polecenie blob parametry i zastosowanie do tworzenia obiektów. Użycie polecenia blob (kropla) jest wygodnym sposobem tworzenia gładkiego przejścia pomiędzy bryłami (kulami lub walcami). Możemy
Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki
Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki Ćwiczenie laboratoryjne 2 Temat: Modelowanie powierzchni swobodnych 3D przy użyciu programu Autodesk Inventor Spis treści 1.
Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D
Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D autorzy: Michał Dajda, Łojek Grzegorz opiekun naukowy: dr inż. Paweł Rotter I. O projekcie. 1. Celem projektu było stworzenie
ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ
ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ Maciej Burnecki opracowanie strona główna Spis treści I Zadania Wyrażenia algebraiczne indukcja matematyczna Geometria analityczna na płaszczyźnie Liczby zespolone 4 Wielomiany
Geometria w R 3. Iloczyn skalarny wektorów
Geometria w R 3 Andrzej Musielak Str 1 Geometria w R 3 Działania na wektorach Wektory w R 3 możemy w naturalny sposób dodawać i odejmować, np.: [2, 3, 1] + [ 1, 2, 1] = [1, 5, 2] [2, 3, 1] [ 1, 2, 1] =
Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:
Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe
Zad. 6: Sterowanie robotem mobilnym
Zad. 6: Sterowanie robotem mobilnym 1 Cel ćwiczenia Utrwalenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas, czynności oraz przypadków użycia. Wykorzystanie dziedziczenia
Misja#3. Robimy film animowany.
Po dzisiejszej lekcji będziesz: tworzyć programy animujące obiekty na ekranie komputera określać położenie i orientację obiektu w kartezjańskim układzie współrzędnych Zauważ że... Ludzkie oko charakteryzuje
Janusz Ganczarski. OpenGL Definiowanie sceny 3D
Janusz Ganczarski OpenGL Definiowanie sceny 3D Spis treści Spis treści..................................... 1 1. Definiowanie sceny 3D........................... 1 1.1. Obszar renderingu............................
Obraz jako funkcja Przekształcenia geometryczne
Cyfrowe przetwarzanie obrazów I Obraz jako funkcja Przekształcenia geometryczne dr. inż Robert Kazała Definicja obrazu Obraz dwuwymiarowa funkcja intensywności światła f(x,y); wartość f w przestrzennych
Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach.
Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka S1, II Rok, 2017 r. WYŚWIETLANIE OBRAZU Techniki wyświetlania obrazu
Układ współrzędnych dwu trój Wykład 2 "Układ współrzędnych, system i układ odniesienia"
Układ współrzędnych Układ współrzędnych ustanawia uporządkowaną zależność (relację) między fizycznymi punktami w przestrzeni a liczbami rzeczywistymi, czyli współrzędnymi, Układy współrzędnych stosowane
OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA
OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA Wprowadzenie W robotyce przez pojęcie manipulacji rozumiemy przemieszczanie w przestrzeni przedmiotów i narzędzi za pomocą specjalnego mechanizmu. W związku z tym pojawia