OpenGL Zaawansowana grafika komputerowa
|
|
- Teresa Maciejewska
- 2 lat temu
- Przeglądów:
Transkrypt
1 p. 1/63 OpenGL Zaawansowana grafika komputerowa
2 p. 2/63 Czym jest OpenGL OpenGL można zdefiniować jako "programowy interfejs sprzętu graficznego". Jest to biblioteka przeznaczona do tworzenia trójwymiarowej grafiki, bardzo szybka i łatwo przenaszalna pomiędzy różnymi systemami. OpenGL jest używany do różnych celów, od programów typu CAD, przez aplikacje architektoniczne aż do generowania komputerowych dinozaurów w najnowszych filmach.
3 p. 3/63 Czym jest OpenGL OpenGL jest względnie nowym standardem przemysłowym, opracowanym zaledwie kilka lat temu, jednak już powszechnie zaakceptowanym. Przodkiem OpenGL był własny język GL firmy Silicon Graphics dla stacji roboczych IRIS. OpenGL jest rezultatem prac firmy SGI nad poprawa przenaszalności biblioteki IRIS GL. Nowy język oferuje moc biblioteki GL, lecz jest przy tym otwarty, pozwalajac na łatwa adaptację dla różnych platform sprzętowych i systemów operacyjnych.
4 p. 4/63 Jak działa OpenGL OpenGL jest biblioteka procedur, za pomoca których programista zamiast opisywać sama scenę oraz jej wyglad, opisuje kroki konieczne do osiagnięcia określonego wygladu lub efektu. OpenGL nie zawiera żadnych funkcji przeznaczonych do zarzadzania oknami, interakcji z użytkownikiem czy operacji wejścia/wyjscia
5 p. 5/63 Układ współrzędnych Istnieja różne układy współrzędnych, które sa stosowane w zależności od tego jakie istnieja potrzeby i jakie dane sa dostępne. Kartezjański układ współrzędnych to taki, który na płaszczyźnie tworza dwie, a w przestrzeni trzy wzajemnie prostopadle proste - nosza nazwę osi układu, a miejsce ich przecięcia jest jego poczatkiem. Położenie punktu określa się przez podanie odległości od poczatku układu do punktów otrzymanych przez rzutowanie prostopadłe danego punktu na poszczególne osie.
6 p. 6/63 Układ współrzędnych Aplikacje generujace grafikę 3D używaja zasadniczo dwóch rodzajów układów współrzędnych kartezjańskich: prawo- i lewoskrętnego.
7 p. 7/63 Układ współrzędnych W obu przypadkach oś X leży poziomo i jest skierowana w prawo. Oś Y jest osia pionowa i jest skierowana w górę. Różnica istnieje w kierunku osi Z. Oś ta jest zawsze położona prostopadle do powierzchni ekranu (jeśli dla uproszczenia założymy, że jest on całkowicie płaski, a jej kierunek możemy określić na podstawie ułożenia lewej lub prawej ręki).
8 p. 8/63 Układ współrzędnych Dla lewoskrętnego układu współrzędnych, jeśli wszystkie palce lewej ręki skierujemy w dodatnia stronę osi X i zagniemy je tak aby pokazywały w kierunku dodatniej osi Y to odchylony kciuk pokaże nam dodatni kierunek osi Z ( w tym przypadku "w głab" monitora ). Dla prawoskrętnego układu robimy to samo, tylko z wykorzystaniem prawej ręki. Wszystkie nasze przykłady będa używać lewoskrętnego układu współrzędnych.
9 p. 9/63 Rzutowanie W OpenGL mamy do czynienia z dwoma głównymi rodzajami rzutów. Pierwszy rodzaj to rzutowanie równoległe. Tego typu rzutowanie określa się stosujac prostokatn a lub sześcienna bryłę rzutowania. Wszystkie obiekty sa rysowane z zachowaniem swoich rozmiarów bez względu na to w jakiej sa odległości.
10 p. 10/63 Rzutowanie Drugim popularniejszym typem rzutowania sa rzuty perspektywiczne. To rzutowanie powoduje powstanie efektu zmniejszenia rozmiarów bardziej odległych obiektów. Bryła widzenia przypomina piramidę ze ściętym wierzchołkiem.
11 p. 11/63 Widoki Odwzorowanie logicznych współrzędnych kartezjańskich na fizyczne współrzędne pikseli okna nazywane jest widokiem. Zwykle widok jest definiowany jako całe okno.
12 p. 12/63 Rysowanie prymitywów Zarówno w dwóch jak i w trzech wymiarach, gdy rysujemy obiekt, w rzeczywistości składamy go z serii mniejszych kształtów, zwanych prymitywami. Prymitywy to proste obiekty, takie jak punkty, odcinki i płaskie wielokaty składane w przestrzeni 3D w celu utworzenia trójwymiarowych obiektów. Każda operacja rysowania w OpenGL zawarta jest pomiędzy wywołaniami funkcji glbegin oraz glend
13 p. 13/63 Rysowanie prymitywów W opengl dostępne sa następujace prymitywy: GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_POLYGON GL_QUADS GL_QUAD_STRIP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN
14 Rysowanie prymitywów p. 14/63
15 p. 15/63 Typy danych OpenGL Aby ułatwić przenoszenie kodu OpenGL pomiędzy różnymi platformami, OpenGL definiuje własne typy danych. Typy te odnosza się do normalnych typów danych języka C, których także można używać Typ danych Wewnętrzna Zdefiniowane Przyrostek nazwy OpenGL reprezentacja jako typ C zmiennej w C GLbyte 8-bitowa liczba całkowita signed char b GLshort 16-bitowa liczba całkowita short s GLint, GLsizei 32-bitowa liczba całkowita long l GLfloat, GLclampf 32-bitowa liczba float f zmiennoprzecinkowa GLdouble, GLclampd 64-bitowa liczba double ub zmiennoprzecinkowa
16 p. 16/63 Typy danych OpenGL Typ danych Wewnętrzna Zdefiniowane Przyrostek nazwy OpenGL reprezentacja jako typ C zmiennej w C GLubyte, GLboolean 8-bitowa liczba całkowita unsigned char us bez znaku GLushort 16-bitowa liczba całkowita unsigned short ui bez znaku GLuint, GLenum, 32-bitowa liczba całkowita unsigned long GLbitfield bez znaku Wszystkie typy danych rozpoczynaja się od GL, co oznacza zmienna OpenGL. Większość posiada także przyrostek określajacy odpowiedni typ danych języka C (byte, short, int, float itd.)
17 p. 17/63 Konwencje nazw funkcji Wszystkie funkcje OpenGL zostały nazwane zgodnie z określona konwencja, informujac a o bibliotece, z której pochodzi funkcja, oraz o rodzaju i typie jej argumentów. gl Boblioteka gl Color Rdzeń nazwy 3 Liczba argumentów f Typ argumentów
18 p. 18/63 Rysowanie w trzech wymiarach Rysowanie punktów: glbegin(gl_points); glvertex3f(0.0f, 0.0f, 0.0f); glvertex3f(50.0f, 50.0f, 50.0f); glend(); Rysowanie linii: glbegin(gl_lines); glvertex3f(0.0f, 0.0f, 0.0f); glvertex3f(50.0f, 50.0f, 50.0f); glend(); Rysowanie trójkatów: glbegin(gl_triangles); glvertex3f(0.0f, 0.0f, 0.0f); glvertex3f(25.0f, 25.0f, 0.0f); glvertex3f(50.0f, 50.0f, 0.0f); glend(); // wybranie punktow // pierwszy punkt // drugi punkt // koniec rysowania // wybranie lini // pierwszy wierzcholek // drugi wierzcholek // koniec rysowania // wybranie trojkatow // pierwszy wierzcholek // drugi wierzcholek // trzeci wierzcholek // koniec rysowania
19 p. 19/63 Rysowanie w trzech wymiarach Tryb wielokatów: glbegin(gl_polygon); glvertex2f(0.0f, 0.0f); glvertex2f(0.0f, 3.0f); glvertex2f(3.0f, 3.0f); glvertex2f(4.0f, 1.5f); glvertex2f(3.0f, 0.0f); glend(); // wybranie wielokatow // P1 // P2 // P3 // P4 // P5 // koniec rysowania
20 p. 20/63 Przekształcenia OpenGL Przekształcenia układu współrzędnych Pozwalaja nam przemieszczać i manipulować obiektami w wirtualnym świecie. Podczas tworzenia trójwymiarowej grafiki wierzchołki obiektów poddawane sa trzem rodzajom przekształceń, zanim zostana narysowane na ekranie: przekształceniom widoku, które określaja położenie kamery przekształceniom modelowania, które przemieszczają obiekt na scenie przekształceniom rzutowania, które definiuja bryłę widoku oraz płaszczyzny obcięcia Przekształcenie Widoku Modelowania Rzutowanie Okienkowe Widoku modelu Opis Określa położenie kamery Przemieszcza obiekt na scenie Definiuje bryłę widoku oraz płaszczyzny obcięcia Odwzorowuje dwuwymiarowy rzut sceny w oknie Stanowi kombinację przekształcenia widoku i przekształcenia modelowania
21 p. 21/63 Przekształcenia OpenGL Przekształcenia musza być zawsze wykonywane w odpowiedniej kolejności. przekształcenie widoku musi zawsze poprzedzać przekształcenie modelowania. Rzutowanie i przekształcenia okienkowe musza natomiast poprzedzać tworzenie grafiki na ekranie.
22 p. 22/63 Macierz modelowania Macierz modelowania definiuje układ współrzędnych wykorzystywany podczas tworzenia obiektów. Macierz ta posiada wymiar 4x4 i mnożona jest o wektory reprezentujace wierzchołki oraz macierze przekształceń Przesunięcie Pozwala przemieścić obiekt z jednego punktu przestrzeni do innego punktu. OpenGL umożliwia wykonanie przesunięć za pomoca funkcji gltranslatef() i gltranslated() zdefiniowanych jako: void gltranslatef(glfloat x, GLfloat y, GLfloat z); void gltranslated(gldouble x, GLdouble y, GLdouble z); Obrót Również funkcja umożliwiajaca wykonywanie obrotów w OpenGL posiada dwie wersje rózniace się typem parametrów: void glrotatef(glfloat angle, GLfloat x, GLfloat y, GLfloat z); void glrotated(gldouble angle, GLdouble x, GLdouble y, GLdouble z);
23 p. 23/63 Przesunięcie przykładowy fragment kodu realizujacy przesunięcie obiektu na scenie może wygladać następujaco: glmatrixmodel(gl_modelview) // wybranie macierzy modelowania glloadidentity(); // resetuje macierz modelowania gltranbslatef(0.0f, 0.0f, 5.0f); // przesuniecie do punktu (0,0,5) RysujObiekt(); // rysuje obiekt
24 p. 24/63 Obrót Wykonanie obrotu dookoła dowolnej osi wymaga określenia wszystkich wartości parametrów x, y, z. Przykładowy kod realizujacy obrót: glmatrixmodel(gl_modelview) // wybranie macierzy modelowania glloadidentity(); // resetuje macierz modelowania glrotatef(45.0f, 0.0f, 0.0f, 1.0f); // obrot o 45 stopni dookoła osi z RysujObiekt(); // rysuje obiekt
25 p. 25/63 Skalowanie Skalowanie polega na zmianie rozmiarów obiektu. W jego wyniku wierzchołki obiektu zbliżaja się lub oddalaja od siebie wzdłuż osi osi układu współrzędnych zgodnie z wartościami odpowiadającymi współczynnikowi skalowania. void glscalef(glfloat x, GLfloat y, GLfloat z); void glscaled(gldouble x, GLdouble y, GLdouble z) Podanie wartości ujemnej jako współczynnika skalowania spowoduje efekt odbicia obiektu względem podanej osi układu współrzędnych.
26 p. 26/63 Kolory w OpenGL Widzialny zakres światła tworza fale o długości od 390 nanometrów (nm) do 720 nm. W przedziale tym mieści się pełne spektrum tęczy: poczawszy od fioletu, przez błękit, zieleń, żółcień, pomarańcz aż do czerwieni. Głębia koloru określa maksymalna liczbę kolorów, które może posiadać piksel i zależy od rozmiaru bufora koloru. Rozmiar ten może wynosić 4,8,16 i więcej bitów. 8-bitowy bufor koloru może przechowywać informacje o jednym z 2 8, czyli 256 kolorów.
27 p. 27/63 Model RGBA w OpenGL Specyfikujac kolor w modelu RGBA przekazuje się fukcji glcolor*() wartości składowej czerwonej, zielonej i niebieskiej. Funkcja glcolor*() posiada kilkanaście wersji różniacych się przyrostkami dodawanymi do jej nazwy. Do najczęściej używanych wersji należa: void glcolor3f(glfloat r, GLfloat g, GLfloat b); void glcolor4f(glfloat r, GLfloat g, GLfloat b, GLfloat a); void glcolor3fv(const GLfloat *v); void glcolor4fv(const GLfloat *v); Pierwsza z funkcji wybiera bieżacy kolor na podstawie wartości składowej czerwonej reprezentowanej przez parametr r, zielonej g i niebieskiej b. Druga z nich posiada dodatkowy parametr a reprezentujacy wartość współczynnika alfa określajacego sposób łaczenia kolorów. Wartości parametrów funkcji musza należeć do przedziału od 0.0 do 1.0
28 p. 28/63 Sześcian kolorów OpenGL opisuje kolory za pomoca intensywności ich składowej czerwonej, zielonej i niebieskiej. Intensywność poszczególnych składowych może przyjmować wartości z przedziału 0 do 1. Rysunek prezentuje za pomoca sześcianu kolorów to, w jaki sposób kombinacje różnej intensywności poszczególnych składowych tworza spektrum kolorów.
29 p. 29/63 Cieniowanie Posługujac się przykładem odcinka łacz acego dwa wierzchołki o różnych kolorach, dla uproszczenia przyjmiemy, że pierwszy z nich jest w kolorze czarnym, a drugi jest biały. Jaki będzie kolor łacz acego je odcinka?. Można to ustalić posługujac się modelem cieniowania. Cieniowanie może być płaskie lub gładkie. Cieniowanie płaskie wykonywane jest za pomoca pojedynczego koloru. Zwykle jest to kolor ostatniego wierzchołka (jedynie w przypadku trybu rysowania wielokatów o dowolnej liczbie wierzchołków wybranego za pomoca stałej GL_POLYGON jest to kolor pierwszego z wierzchołków). Cieniowanie gładkie zwane też cieniowaniem Gouraud stosuje natomiast interpolację koloru pikseli odcinka. Jeśli dla naszego odcinka zastosujemy cieniowanie płaskie, to będzie on miał kolor biały, ponieważ ostatni z wierzchołków odcinka ma taki kolor. Natomiast w przypadku cieniowania gładkiego kolor pikseli będzie zmieniać się poczawszy od koloru czarnego pierwszego wierzchołka poprzez coraz jaśniejsze odcienie szarości aż do koloru białego drugiego z wierzchołków.
30 p. 30/63 Oświetlenie Można teraz zastanowić się nad tym, w jaki sposób oświetlenie wpływa na wyglad obiektów w rzeczywistym świecie. Obraz widziany w oku powstaje na skutek podrażnienia siatkówki przez fotony. Fotony te musza mieć określone źródło, a do oka trafiaja na skutek odbicia przez ogladane obiekty. Nie wszystkie fotony, które padaja na obiekt zostaja odbite, ponieważ część ich zostaje pochłonięta. Stopień odbicia padajacego światła przez obiekt zależy od materiału z jakiego jest on wykonany. Obiekty, które widziane sa jako połyskujace, odbijaja większość światła. Natomiast obiekty, które pochłaniają znaczna część padajacego na nie światła lub odbijaja ja w takim kierunku, że nie trafiaja do oka, odbierane sa jako ciemniejsze. OpenGL wyznacza efekt oświetlenia obiektów w podobny sposób. Kolor obiektu zależy od stopnia odbicia przez niego składowej czerwonej, zielonej i niebieskiej padajacego światła. Stopień ten OpenGL określa na podstawie rodzaju materiału, na który pada światło.
31 p. 31/63 Oświetlenie OpenGL umożliwia modelowanie oświetlenia za pomoca czterech komponentów: światła otoczenia - światło to przedstawia się tak, jakby nie posiadało źródła (zostało rozproszone w takim stopniu, że ustalenie jego źródła nie jest możliwe) światła rozproszonego - światło to pada z określonego kierunku, ale zostaje odbite przez obiekt równomiernie we wszystkich kierunkach, dzięki czemu niezależnie od położenia obserwatora obiekt wydaje się oświetlony równomiernie światło odbicia - światło pada z określonego kierunku i odbijane jest także w jednym kierunku tworzac efekt odbicia światło emisji - obiekty wydzielajace światło emisji posiadaja większa intensywność kolorów (światło emisji nie ma wpływu na wyglad pozostałych obiektów, a inne źródła światła nie maja wpływu na światło emisji danego obiektu)
32 p. 32/63 Oświetlenie Światło ma również wpływ na to, że większość nie oświetlonych obiektów trójwymiarowych wyglada jak płaskie obiekty jeśli nie sa oświetlone.
33 p. 33/63 Materiały OpenGL wyznacza kolor obiektu na podstawie stopnia odbicia przez jego materiał składowej czerwonej, zielonej i niebieskiej światła. Na przykład powierzchnia w kolorze zielonym odbija w całości składowa zielona światła, a pochłania składowa czerwona i niebieska. Jeśli więc będzie padać na nia światło posiadajace wyłacznie składowa czerwona, to będzie można zobaczyć powierzchnię w kolorze czarnym, ponieważ oświetlajace ja światło zostanie pochłonięte w całości. Natomiast jeżeli oświetlona zostanie zielona powierzchnia białym światłem, to będzie ona miała kolor zielony, ponieważ składowa zielona zostanie odbita, a składowe niebieska i czerwona zostana pochłonięte. Podobnie będzie się działo, jeśli oświetlona zostanie ona za pomoca źródła emitujacego kolor zielony, ponieważ odbije w całości składowa zielona padajacego na nia światła.
34 p. 34/63 Materiały Materiał opisuje się za pomoca tych samych właściwości co światło. Właściwości te opisuja stopień odbicia poszczególnych rodzajów światła przez dany materiał. Jedne materiały będa na przykład dobrze odbijać jedynie światło otoczenia, a pochłaniać światło rozproszone i światło odbicia. Inne będa odbijać światło odbicia stwarzajac wrażenie połysku, a absorbować pozostałe rodzaje światła. Kolor materiału zależy od stopnia odbicia światła i światła rozproszonego, który zwykle jest jednakowy.
35 p. 35/63 Normalne Normalna do powierzchni jest wektorem prostopadłym do danej powierzchni. Wyznaczenie normalnej do powierzchni jest niezbędne w celu ustalenia odcienia koloru, którym wypełniony zostanie wielokat oświetlony pod określonym katem. Jak wiadomo źródła światła (w zależności od ich rodzaju) promieniują w określonym kierunku lub we wszystkich kierunkach. Promienie światła padaja więc na obiekt pod pewnym katem. Znajac wartość tego kata oraz kat odbicia światła można, biorac pod uwagę także rodzaj materiału i rodzaj światła, wyznaczyć kolor danej powierzchni. Wyznaczenie normalnej ma więc na celu określenie kata padania światła na dana powierzchnię. Gdy jednak działania ograniczy się jedynie do wyznaczenia oświetlenia powierzchni na podstawie normalnej, to uzyska się mało realistyczny efekt wypełnienia powierzchni jednolitym kolorem. Dlatego też normalna, a tym samym kolor powierzchni, należy wyznaczyć w odniesieniu do wszystkich wierzchołków wielokata. Wielokat będzie natomiast wypełniany przy użyciu modelu cieniowania gładkiego, co pozwoli uzyskać bardziej realistyczny efekt.
36 p. 36/63 Użycie normalnych Normalna zapisuje się jak każdy inny wektor. Na przykład dla wektora leżacego na płaszczyźnie xz (którego wszystkie wierzchołki maja taka sama współrzędna y) można narysować linie prostopadła do płaszczyzny trójkata w wierzchołku o współrzędnych (x, y, 0). Linia ta będzie wyznaczać prostopadła i normalna do trójkata. OpenGL udostępnia funkcję glnormal3f(), która pozwala wyznaczyć normalna w kolejnym rysowanym wierzchołku lub normalna do płaszczyzny przez zbiór rysowanych wierzchołków. jej prototyp wyglada następujaco: void glnormal3f(glfloat nx, GLfloat ny, GLfloat nz); Parametry funkcji reprezentuja składowe wektora normalnego do płaszczyzny. Funkcje tę wywołuje się przed utworzeniem wierzchołków: glbegin(gl_triangles); glnormal3f(0.0f, 1.0f, 0.0f); glvertex3f(0.0f, 5.0f, 0.0f); glvertex3f(4.0f, 5.0f, 0.0f); glvertex3f(0.0f, 5.0f, 4.0f); glend();
37 p. 37/63 Normalne jednostkowe Aby przeprowadzić obliczenia zwiazane z wyznaczeniem oświetlenia obiektu, OpenGL musi przekształcić normalne przekazane za pomoca funkcji glnormal3f() w normalne jednostkowe. Normalne jednostkowe sa poprostu wektorami normalnymi o długości równej 1. Aby OpenGL używał normalnych jednostkowych, należy wywołać funkcję glenable() z parametrem GL_NORMALIZE glenable(gl_normalize); Zastosowanie tego parametru powoduje, że OpenGL wyznacza wektor jednostkowy. Ułatwia to pracę programisty, który nie musi samodzielnie wyznaczać normalnych jednostkowych. jednak powoduje wolniejsze działanie OpenGL. Dlatego też lepiej jest zawsze samodzielnie wyznaczać normalne jednostkowe.
38 p. 38/63 Korzystanie z oświetlenia OpenGL umożliwia umieszczenie w tworzonej scenie do ośmiu źródeł światła. Liczba ta powinna być wystarczajaca w zdecydowanej większości przypadków. W pozostałych przypadkach można zastosować odpowiednie przekształcenia, tak by obciać źródła światła które nie sa widoczne. W celu dodania oświetlenia do sceny należy wykonać cztery podane niżej polecenia: Należy wyznaczyć wektory normalne w każdym wierzchołku każdego obiektu. Pozwola one określić orientację obiektów względem źródła światła. Należy utworzyć, wybrać i umieścić źródła światła Należy utworzyć i wybrać model oświetlenia. Model ten definiuje światło otoczenia oraz położenie obserwatora, dla którego wyznaczane jest oświetlenie. Należy zdefiniować właściwości materiałów obiektów znajdujacych się na scenie.
39 p. 39/63 Korzystanie z oświetlenia Definiujemy tablice określajace właściwości oświetlenia: // swiatlo otoczenia float ambientlight[] = {0.3f, 0.5f, 0.8f, 1.0f}; // swiatlo rozproszone float diffuselight[] = {0.25f, 0.25f, 0.25f, 1.0f}; // pozycja zrodla swiatla float lightposition[] = {0.0f, 0.0f, 0.0f, 1.0f}; Zmienne te określaja właściwości oświetlenia. Tablica ambientlight deklaruje światło otoczenia o wartościach składowej czerwonej, zielonej i niebieskiej wynoszacych odpowiednio 0.3, 0.5, 0.8. Oznacza to, że światło padajace na obiekt ze wszystkich kierunków będzie miało odcień niebieski, ponieważ ta składowa ma największa intensywność. Zmienna diffuselight nadaje wszystkim składowym światła rozproszonego tę sama wartość oznacza to, że każda ściana oświetlona bezpośrednio przez to światło będzie jaśniejsza od pozostałych ścian obiekt. Ostatnia z wartości podana dla obu rodzajów światła opisuje współczynnik alfa.
40 p. 40/63 Korzystanie z oświetlenia Ostatnia ze zmiennych określa pozycję źródła światła. Pierwsze trzy wartości maja takie samo znaczenie jak w przypadku funkcji gltranslate(). W tym przykładzie źródło światła zostało umieszczone w poczatku układu współrzędnych. czwarta wartość informuje OpenGL, czy pierwsze trzy wartości reprezentuja współrzędne źródła światła czy wektor. Wartość 1.0 oznacza, że reprezentuja one współrzędne źródła światła. Jeśli zmieniona zostanie ostatnia wartość na 0.0, to OpenGL zinterpretuje pierwsze trzy wartości jako składowe wektora określajacego kierunek z którego pada światło. Wektor (0, 0, 0) nie reprezentuje żadnego kierunku, wobec czego należy zmienić jego składowe. Jeśli przyjmie się założenie, że obserwator znajduje się w środku układu współrzędnych i spoglada w kierunku ujemnej części osi z, wtedy można ustalić kierunek, z którego pada światło jako dodatni kierunek osi z. Wektor ten należy zdefiniować następujaco: float lightposition[] = {0.0f, 0.0f, 1.0f, 0.0f};
41 p. 41/63 Korzystanie z oświetlenia Kod inicjalizujący właściwości oświetlenia i materiału może wygladać następujaco: void Initialize() { // kolor czarny glclearcolor(0.0f, 0.0f, 0.0f, 0.0f); glshademodel(gl_smooth); glenable(gl_depth_test); // cienowanie gladkie // usuwa ukryte powierzchnie glenable(gl_lighting); // aktywuje oswietlenie // okresla wlasciwosci materialu glmaterialfv(gl_light0, GL_AMBIENT, ambientlight); glmaterialfv(gl_light0, GL_DIFFUSE, diffuselight); gllightfv(gl_light0, GL_POSITION, lightposition); } glenable(gl_light0); // wlacza oswietlenie
42 p. 42/63 Korzystanie z oświetlenia Za pomoca wartości GL_SMOOTH włacza się model cieniowania Gouraud. Kolejna z użytych wartościa jest GL_LIGHTING. przekazana jako parametr funkcji glenable() informuje OpenGL, że będa przeprowadzane obliczenia zwiazane z wyznaczeniem oświetlenia obiektów. Funkcja glmaterialfv() określa właściwości źródeł światła. trzeba w tym miejscu przypomnieć o tym, że OpenGL pozwala umieścić na tworzonej scenie do ośmiu źródeł światła oznaczonych za pomoca wartości GL_LIGHTX, gdzie X jest liczba z przedziału 0 do 7. Aby więc zmodyfikować właściwość na przykład piatego źródła, należy podać jako parametr funkcji gllightfv()wartość GL_LIGHT4 Na końcu należy jeszcze właczyć źródło światła przekazujac odpowiednia wartość GL_LIGHTX funkcji glenable(). W przeciwnym razie scena nie zostanie oświetlona.
43 p. 43/63 Łaczenie kolorów Łaczenie kolorów pozwala uzyskać efekt przezroczystości. Dzięki temu grafika OpenGL może symulować obiekty świata rzeczywistego, przez które można widzieć inne obiekty na przykład szkło lub wodę. Przy łaczeniu kolorów znajduje zastosowanie wartość współczynnika alfa, który pojawił się wiele razy przy omawianiu funkcji OpenGL. Łaczenie kolorów polega na utworzeniu nowego koloru na podstawie kolorów obiektu przesłanianego i przesłaniającego. Wykonywane jest zwykle na składowych modelu RGB przy wykorzystaniu współczynnika alfa reprezentujacego przesłanianie. Im mniejsza jego wartość, tym większe będzie wrażenie przezroczystości obiektu przesłaniającego. Aby korzystać z łaczenia kolorów w OpenGL, należy je uaktywnić przekazujac funkcji glenable() parametr GL_BLEND. następnie wywołuje się funkcję glblendfunc() z parametrem GL_ONE dla źródła i GL_ZERO dla celu.
44 p. 44/63 Łaczenie kolorów Dostępne funkcje łaczenia źródła: Funkcja Opis GL_ZERO kolorem źródła jest (0,0,0,0) GL_ONE GL_DST_COLOR GL_ONE_MINUS_DST_COLOR GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA GL_DST_ALPHA GL_ONE_MINUS_DST_ALPHA wykorzystuje bieżacy kolor źródła mnoży kolor źródła przez kolor celu mnoży kolor źródła przez dopełnienie koloru celu, czyli przez [(1,1,1,1) kolorcelu] mnoży kolor źródła przez wartość alfa źródła mnoży kolor źródła przez dopełnienie wartości alfa źródła, czyli przez (1-wartość alfa celu) mnoży kolor źródła przez wartość alfa celu mnoży kolor źródła przez dopełnienie wartości alfa celu, czyli przez (1-wartość alfa celu)
45 p. 45/63 Przezroczystość Efekt przezroczystości uzyskuje się stosujac kombinację funkcji źródła GL_SRC_ALPHA z funkcja celu GL_ONE_MINUS_SRC_ALPHA. Poniższy fragment kodu konfiguruje sposób łaczenia kolorów tak, by można było uzyskać efekt przezroczystości: glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); Przy tak określonych funkcjach łaczenia kolor źródła nakładany jest w stopniu określonym przez współczynnik alfa na kolor pikseli celu.
46 p. 46/63 Odwzorowania tekstur Odwzorowanie tekstur pozwala pokrywać wielokaty za pomoca realistycznych obrazów. Na przykład kulę można pokryć mapa powierzchni Ziemi uzyskujac w ten sposób trójwymiarowa reprezentację naszej planety. tekstury sa powszechnie wykorzystywane w grafice trójwymiarowej. Zwłaszcza w grach umożliwiajac uzyskanie tak pożadanego realizmu tworzonych scen. Mapy tekstur sa dwuwymiarowymi tablicami zawierajacymi elementy nazywane tekselami. Mimo, że reprezentuja zawsze obszar prostokata, to moga być odwzorowane na dowolnych trójwymiarowych obiektach, takich jak kule, walce i tym podobne. Zwykle stosowane sa tekstury dwuwymiarowe, ale używa się także tekstur jedno i trójwymiarowych. tekstura dwuwymniarowa posiada szerokość i wysokość.
47 p. 47/63 Odwzorowania tekstur Proces mapowania tekstury:
48 p. 48/63 Odwzorowania tekstur Po wykonaniu odwzorowania tekstury na wielokat będzie ona przekształcana razem z wielokatem. W przypadku wspomnianej już reprezentacji Ziemi tekstura będzie obracać się razem z kula, na której została umieszczona stwarzajac w ten sposób wrażenie obrotu ziemi. Także w przypadku, gdy do jej animacji dodany zostanie kolejny obrót i przesunięcie na orbicie wokół innej kuli reprezentujacej Słońce, tekstura pozostanie na powierzchni kuli. Odwzorowanie tekstur można wyobrazić sobie jako zmianę sposobu wygladu powierzchni obiektu lub wielokata. Niezależnie od wykonywanych przekształceń pokrywać będzie ona zawsze jego powierzchnię.
49 p. 49/63 Tekstury praktyka Po załadowaniu obrazu tekstury z pliku graficznego stosuje się funkcję glgentextures(), aby nadać nazwę obiektowi tekstury. Funkcja glbindtexture() wiaże obiekt tekstury z bieżac a tekstura, która będzie wykorzystywana podczas rysowania wielokatów. Aby skorzystać w programie z wielu różnych tekstur, trzeba przy zmianie bieżacej tekstury za każdym razem wywoływać funkcję glbindtexture(). Funkcja gltexparameteri() określa sposób filtrowania tekstury. Wzór tekstury reprezentowany za pomoca wczytanego wcześniej obrazu określa się za pomoca funkcji glteximage2d(). Za pomoca jej parametrów można określić także rozmiary, typ, położenie i format danych.
50 p. 50/63 Mapy tekstur Po załadowaniu z pliku obrazu tekstury, należy zadeklarować go w OpenGL jako mapę tekstury. W zależności od liczby wymiarów tekstury używa się w tym celu innej funkcji. Dla mapy tekstury dwuwymiarowej będzie to funkcja glteximage2d(). Dla map tekstur jednowymiarowych użyć trzeba funkcji glimage1d(), a dla map tekstur trójwymiarowych funkcji glteximage3d() Tekstury dwuwymiarowe Aby zdefiniować teksturę dwuwymiarowa użyć można funkcji glteximage2d() zdefiniowanej następujaco: void gltexture2d(glenum target, GLint level, GLint internalformat GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* texels);
51 p. 51/63 Tekstury dwuwymiarowe Parametry : target może przyjmować wartość GL_TEXTURE_2D lub GL_PROXY_TEXTURE_2D. W naszych zastosowaniach będzie on posiadać zawsze wartość GL_TEXTURE_2D level określa rozdzielczość mapy tekstury. Nadanie wartości 0 oznacza tylko jedna rozdzielczość internalframe opisuje format tekseli, które przekazywane będa funkcji. Może przyjmować on wartości z przedziału od 1 do 4 badź jednej z 32 stałych zdefiniowanych przez OpenGL. Najbardziej przydatne to: GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB i GL_RGBA width i height definiuja szerokość i wysokość mapy tekstury. Ich wartości być potęga liczby 2. border określa, czy dookoła tekstury znajduje się ramka. Przyjmuje wtedy wartość 1, natomiast wartość 0 oznacza brak ramki
52 p. 52/63 Tekstury dwuwymiarowe parametry: format definiuje format danych obrazu tekstury. Może on przyjmować jedna z następujacych wartości: GL_COLOR_INDEX, GL_RGB, GL_RGBA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE lub GL_LUMINANCE_ALPHA type definiuje typ danych obrazu tekstury. Może on przyjmować jedna z następujacych wartości: GL_BYTE, GL_UNSIGNED, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT lub GL_BITMAP texels jest wskaźnikiem właściwych danych obrazu tekstury, które zostały wygenerowane za pomoca pewnego algorytmu lub załadowane z pliku. Jeżeli załadowany został obraz formatu RGBA o szerokości texturewidth i wysokości textureheight do bufora wskazywanego przez zmienna texturedata. Funkcję glteximage2d() wywoływać się będzie wtedy w następujacy sposób: glteximage2d(gl_texture_2d, 0, GL_RGBA, texturewidth, textureheight, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturedata
53 Obiekty tekstur Obiekty tekstur służa do przechowywania gotowych do użycia tekstur. Umożliwiaja załadowanie do pamięci wielu obrazów tekstur, a następnie odwoływanie się do nich podczas rysowania sceny. Rozwiazanie takie zwiększa efektywność tworzenia grafiki, ponieważ tekstury nie musza być ładowane za każdym razem, gdy konieczne jest ich użycie. Tworzenie nazwy tekstury Zanim użyty zostanie obiekt tekstury, trzeba najpierw utworzyć jego nazwę. Nazwy tekstury sa liczbami dodatnimi całkowitymi różnymi od zera. Użycie funkcji glgentextures() do tworzenia nazw pozwala zachować pewność, że istniejaca już nazwa nie zostanie zduplikowana: void glgentextures(glsizei n, GLuint *texturenames); parametr n określa liczbę nazw tekstur, które powinny zostać utworzone i umieszczone w tablicy texturenames. Na przykład poniższy fragment kodu utworzy trzy nowe nazwy tekstur: unsigned int texturenames[3];... glgentextures(3, texturenames); p. 53/63
54 p. 54/63 Obiekty tekstur Po utworzeniu nazwy tekstury należy zwiazać ja z danymi opisujacymi teksturę. Służy do tego funkcja glbindtexture(): void glbindtexture(glenum target, GLuint texturename); Pierwsze wywołanie tej funkcji powoduje utworzenie nowego obiektu tekstury o domyślnych właściwościach. Właściwości te można zmienić odpowiednie funkcje OpenGL zwiazane z teksturami. Parametr target funkcji glbindtexture() może przyjmować wartości GL_TEXTURE_1D, GL_TEXTURE_2D lub GL_TEXTURE_3D. Po zwiazaniu obiektu tekstury z danymi można ponownie użyć funkcji glbindtexture() do zmiany, właściwości obiektu tekstury. Można założyć, że w programie utworzono wiele obiektów tekstur i powiazano je z danymi tekstur. Przy tworzeniu grafiki informuje się maszynę OpenGL za pomoca funkcji glbindtexture(), której tekstury należy użyć.
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:
Janusz Ganczarski. OpenGL Pierwszy program
Janusz Ganczarski OpenGL Pierwszy program Spis treści Spis treści..................................... 1 1. Pierwszy program.............................. 1 1.1. Rysowanie sceny 3D...........................
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
Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz.
Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl OpenGL (Open Graphics Library) jest niskopoziomowa biblioteka graficzna (API - programowy
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.
Teksturowanie. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 10. Tekstury. Proces nakładania tekstury.
Teksturowanie Oprogramowanie i wykorzystanie stacji roboczych Wykład 10 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Teksturowanie jest
Temat: Wprowadzenie do OpenGL i GLUT
Instrukcja laboratoryjna 8 Grafika komputerowa 3D Temat: Wprowadzenie do OpenGL i GLUT Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny OpenGL
Ś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
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ć
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
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
Rysowanie punktów na powierzchni graficznej
Rysowanie punktów na powierzchni graficznej Tworzenie biblioteki rozpoczniemy od podstawowej funkcji graficznej gfxplot() - rysowania pojedynczego punktu na zadanych współrzędnych i o zadanym kolorze RGB.
DesignCAD 3D Max 24.0 PL
DesignCAD 3D Max 24.0 PL Październik 2014 DesignCAD 3D Max 24.0 PL zawiera następujące ulepszenia i poprawki: Nowe funkcje: Tryb RedSDK jest teraz dostępny w widoku 3D i jest w pełni obsługiwany przez
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
Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.
Przyszedł czas na rysowanie własnych figur, czyli prymitywy, obracanie bitmap, oraz alpha blending-czyli półprzezroczystość. Będę opisywał tylko rzeczy nowe-nie ma potrzeby abym się powtarzał. Zaczynajmny
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,
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
OpenGL przezroczystość
OpenGL przezroczystość W standardzie OpenGL efekty przezroczystości uzyskuje się poprzez zezwolenie na łączenie kolorów: Kolor piksela tworzy się na podstawie kolorów obiektu przesłanianego i przesłaniającego
Przewodnik po soczewkach
Przewodnik po soczewkach 1. Wchodzimy w program Corel Draw 11 następnie klikamy Plik /Nowy => Nowy Rysunek. Następnie wchodzi w Okno/Okno dokowane /Teczka podręczna/ Przeglądaj/i wybieramy plik w którym
Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup
Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie
Użycie przestrzeni papieru i odnośników - ćwiczenie
Użycie przestrzeni papieru i odnośników - ćwiczenie Informacje ogólne Korzystanie z ćwiczeń Podczas rysowania w AutoCADzie, praca ta zwykle odbywa się w przestrzeni modelu. Przed wydrukowaniem rysunku,
Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.
Ustawienia materiałów i tekstur w programie KD Max. 1. Dwa tryby własności materiału Materiał możemy ustawić w dwóch trybach: czysty kolor tekstura 2 2. Podstawowe parametry materiału 2.1 Większość właściwości
Definicja obrotu: Definicja elementów obrotu:
5. Obroty i kłady Definicja obrotu: Obrotem punktu A dookoła prostej l nazywamy ruch punktu A po okręgu k zawartym w płaszczyźnie prostopadłej do prostej l w kierunku zgodnym lub przeciwnym do ruchu wskazówek
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............................
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
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.
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
Podstawy 3D Studio MAX
Podstawy 3D Studio MAX 7 grudnia 2001 roku 1 Charakterystyka programu 3D Studio MAX jest zintegrowanym środowiskiem modelowania i animacji obiektów trójwymiarowych. Doświadczonemu użytkownikowi pozwala
Odbicie na szkłach okularów
Odbicie na szkłach okularów Jedna z wad fotografii studyjnych polega na tym, że w okularach sfotografowanych modeli odbija się oświetlenie i wyposażenie studio. W takich sytuacjach bardzo często stosuje
OpenGL. Silicon Graphics (IRIS GL stacje graficzne)
OpenGL. Silicon Graphics (IRIS GL stacje graficzne) Biblioteka -przestrzeń 3D -rzutowanie -prymitywy graficzne -operacje na barwach HISTORIA 1992 - powstaje wersja 1.0 specyfikacji OpenGL przenośnej między
Grafika rastrowa (bitmapa)-
Grafika komputerowa Grafika rastrowa Grafika rastrowa (bitmapa)- sposób zapisu obrazów w postaci prostokątnej tablicy wartości, opisujących kolory poszczególnych punktów obrazu (prostokątów składowych).
GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów
GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów 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
Podstawy Informatyki Wykład V
Nie wytaczaj armaty by zabić komara Podstawy Informatyki Wykład V Grafika rastrowa Paint Copyright by Arkadiusz Rzucidło 1 Wprowadzenie - grafika rastrowa Grafika komputerowa tworzenie i przetwarzanie
Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie
Laboratorium Grafiki Komputerowej i Animacji Ćwiczenie VI Biblioteka OpenGL - teksturowanie Sławomir Samolej Rzeszów, 1999 1. Wstęp Podczas tworzenia skomplikowanych obiektów graficznych przydatnym mechanizmem
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. Funkcje OpenGL
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
Grafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki
Grafika komputerowa INSTRUKCJA DO LABORATORIUM 2: operacje przestrzenne oraz obsługa klawiatury i myszki Strona 1 z 9 C E L Ć W I C Z E N I A Celem ćwiczenia jest zapoznanie się z podstawowymi operacjami
Ćwiczenie nr 2 - Rysowanie precyzyjne
Ćwiczenie nr 2 - Rysowanie precyzyjne Materiały do kursu Skrypt CAD AutoCAD 2D strony: 37-46. Wprowadzenie Projektowanie wymaga budowania modelu geometrycznego zgodnie z określonymi wymiarami, a to narzuca
RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D
Politechnika Białostocka Wydział Budownictwa i Inżynierii Środowiska Zakład Informacji Przestrzennej Inżynieria Środowiska INSTRUKCJA KOMPUTEROWA z Rysunku technicznego i geometrii wykreślnej RYSUNEK TECHNICZNY
Spis treści. 1 Moduł Mapy 2
Spis treści 1 Moduł Mapy 2 1.1 Elementy planu............................. 2 1.1.1 Interfejs widoku......................... 3 1.1.1.1 Panel sterujacy.................... 3 1.1.1.2 Suwak regulujacy przybliżenie...........
Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2
Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2 1 Program nauczania. Przedmiotowy system oceniania. Regulamin pracowni komputerowej. - 7 punktów regulaminu potrafi powiedzieć, czego się będzie
Grafika trójwymiarowa
Strona 1 Grafika 3D w systemie Android Wprowadzenie do OpenGL ES Podstawy rysowania Rzutowanie i kamera Klasa GLSurfaceView Algorytm rysowania Tekstury Strona 2 Grafika 3D w systemie Android W komputerach,
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.
Elementy programu Paint Aby otworzyć program Paint, należy kliknąć przycisk Start i Paint., Wszystkie programy, Akcesoria Po uruchomieniu programu Paint jest wyświetlane okno, które jest w większej części
1. Opis okna podstawowego programu TPrezenter.
OPIS PROGRAMU TPREZENTER. Program TPrezenter przeznaczony jest do pełnej graficznej prezentacji danych bieżących lub archiwalnych dla systemów serii AL154. Umożliwia wygodną i dokładną analizę na monitorze
1. Podstawowe algorytmy techniki rastrowe a) dwa przecinające się odcinki mogą nie mieć wspólnego piksela (T) b) odcinek o współrzędnych końcowych
1. Podstawowe algorytmy techniki rastrowe a) dwa przecinające się odcinki mogą nie mieć wspólnego piksela (T) b) odcinek o współrzędnych końcowych (2,0), (5,6) narysowany przy wykorzystaniu algorytmu Bresenhama
Animacje z zastosowaniem suwaka i przycisku
Animacje z zastosowaniem suwaka i przycisku Animacja Pole równoległoboku Naukę tworzenia animacji uruchamianych na przycisk zaczynamy od przygotowania stosunkowo prostej animacji, za pomocą, której można
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
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
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library OpenGL składa się z teoretycznego modelu grafiki 3D, zestawu typów i funkcji obsługujących różne cechy tego modelu. WjęzykuC: pliki
Podstawy grafiki komputerowej
Podstawy grafiki komputerowej Krzysztof Gracki K.Gracki@ii.pw.edu.pl tel. (22) 6605031 Instytut Informatyki Politechniki Warszawskiej 2 Sprawy organizacyjne Krzysztof Gracki k.gracki@ii.pw.edu.pl tel.
Tworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Przekształcenia geometryczne w grafice komputerowej. Marek Badura
Przekształcenia geometryczne w grafice komputerowej Marek Badura PRZEKSZTAŁCENIA GEOMETRYCZNE W GRAFICE KOMPUTEROWEJ Przedstawimy podstawowe przekształcenia geometryczne na płaszczyźnie R 2 (przestrzeń
GRAFIKA. Rodzaje grafiki i odpowiadające im edytory
GRAFIKA Rodzaje grafiki i odpowiadające im edytory Obraz graficzny w komputerze Może być: utworzony automatycznie przez wybrany program (np. jako wykres w arkuszu kalkulacyjnym) lub urządzenie (np. zdjęcie
Bufor koloru cd. Czyszczenie bufora koloru glclearcolor( )
Wizualizacje 3D Bufor koloru Bufor koloru służy do przechowywania obrazu renderowanej sceny 3D. Typowo OpenGL stosuje dwa bufory koloru: przedni i tylny. Bieżąca scena znajduje się w przednim buforze i
Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.
W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2012. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska A.: Obsługa programu AutoCAD 14 i 2000.
Notacja Denavita-Hartenberga
Notacja DenavitaHartenberga Materiały do ćwiczeń z Podstaw Robotyki Artur Gmerek Umiejętność rozwiązywania prostego zagadnienia kinematycznego jest najbardziej bazową umiejętność zakresu Robotyki. Wyznaczyć
Tworzenie dokumentacji 2D
Tworzenie dokumentacji 2D Tworzenie dokumentacji technicznej 2D dotyczy określonej części (detalu), uprzednio wykonanej w przestrzeni trójwymiarowej. Tworzenie rysunku 2D rozpoczynamy wybierając z menu
(1,10) (1,7) (5,5) (5,4) (2,1) (0,0) Grafika 3D program POV-Ray - 73 -
Temat 10: Tworzenie brył obrotowych poprzez obrót krzywych (lathe). W poprzednim temacie wymodelowaliśmy kieliszek obracając krzywą Beziera wokół osi Y. Zastosowaliśmy w tym celu polecenie lathe. Krzywa
Sposób odwzorowania wymiarów w wypadku eksportowania z programu Revit do programu AutoCAD
Sposób odwzorowania wymiarów w wypadku eksportowania z programu Revit do programu AutoCAD Parametr wymiaru programu Revit Wymiar wyrównany Wymiar liniowy Wymiar kątowy Wymiar promieniowy Wymiar długości
ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)
ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) LABORATORIUM 5 - LOKALIZACJA OBIEKTÓW METODĄ HISTOGRAMU KOLORU 1. WYBÓR LOKALIZOWANEGO OBIEKTU Pierwszy etap laboratorium polega na wybraniu lokalizowanego obiektu.
Wizualizacja 3D. dr inż. Marcin Gabryel
Wizualizacja 3D dr inż. Marcin Gabryel Modele braw CMYK (Cyan, Magenta, Yellow, black) RGB (Red, Green, Blue) HSV (Hue, Saturation, Value) RGB Model polega na sumowaniu sygnałów w poszczególnych kanałach.
KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012
Rysowanie precyzyjne 7 W ćwiczeniu tym pokazane zostaną wybrane techniki bardzo dokładnego rysowania obiektów w programie AutoCAD 2012, między innymi wykorzystanie punktów charakterystycznych. Narysować
WYKŁAD 11. Kolor. fiolet, indygo, niebieski, zielony, żółty, pomarańczowy, czerwony
WYKŁAD 11 Modelowanie koloru Kolor Światło widzialne fiolet, indygo, niebieski, zielony, żółty, pomarańczowy, czerwony ~400nm ~700nm Rozróżnialność barw (przeciętna): 150 czystych barw Wrażenie koloru-trzy
Maskowanie i selekcja
Maskowanie i selekcja Maska prostokątna Grafika bitmapowa - Corel PHOTO-PAINT Pozwala definiować prostokątne obszary edytowalne. Kiedy chcemy wykonać operacje nie na całym obrazku, lecz na jego części,
4. Rysowanie krzywych
1. Operator plot y x \begin{tikzpicture} \draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$}; \draw[->] (0,-1.2) -- (0,4.2) node[above] {$y$}; \draw (3,4) -- (3,3) plot coordinates{(2,3) (3,0) (4,3)}; \end{tikzpicture}
ANDROID. OpenGL ES 1.0. Tomasz Dzieniak
ANDROID OpenGL ES 1.0 Tomasz Dzieniak Wymagania JRE & JDK 5.0 + IDE (Eclipse 3.3.1 + / Netbeans 7.0.0 +) Android SDK Starter Package Android SDK Components Pierwszy program Project name: OpenGL Build Target:
4.2. Ustawienia programu
4.2. Ustawienia programu Zmiana wielkości dokumentu Pracując w programie MS Excel 2010 niejednokrotnie doświadczysz sytuacji, w której otwarty przez Ciebie arkusz nie będzie mieścił się na ekranie monitora.
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Techniki animacji komputerowej
Techniki animacji komputerowej 1 Animacja filmowa Pojęcie animacji pochodzi od ożywiania i ruchu. Animować oznacza dawać czemuś życie. Słowem animacja określa się czasami film animowany jako taki. Animacja
Skalowanie i ustawianie arkuszy/układów wydruku w AutoCAD autor: M. Motylewicz, 2012
1 z 72 Rysunek rysujemy w skali rzeczywistej tzn. jeżeli pas ruchu ma szerokość 3,5m to wpisujemy w AutoCAD: 3,5 jednostki (mapa oczywiście również musi być wstawiona w skali 1:1). Opisany w dalszym ciągu
Rys. 1. Rozpoczynamy rysunek pojedynczej części
Inventor cw1 Otwieramy nowy rysunek typu Inventor Part (ipt) pojedyncza część. Wykonujemy to następującym algorytmem, rys. 1: 1. Na wstędze Rozpocznij klikamy nowy 2. W oknie dialogowym Nowy plik klikamy
Wykład 4. Rendering (1) Informacje podstawowe
Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie
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 RASTROWA GRAFIKA RASTROWA
GRAFIKA KOMPUTEROWA GRAFIKA RASTROWA GRAFIKA RASTROWA (raster graphic) grafika bitmapowa: prezentacja obrazu za pomocą pionowo-poziomej siatki odpowiednio kolorowanych pikseli na monitorze komputera, drukarce
TWORZENIE OBIEKTÓW GRAFICZNYCH
R O Z D Z I A Ł 2 TWORZENIE OBIEKTÓW GRAFICZNYCH Rozdział ten poświęcony będzie dokładnemu wyjaśnieniu, w jaki sposób działają polecenia służące do rysowania różnych obiektów oraz jak z nich korzystać.
Systemy multimedialne 2015
Systemy multimedialne 2015 Nazwa nowej warstwy nie ma znaczenia pod względem funkcjonalnym. Warto jednak ją nadać, łatwiej możemy się wtedy poruszać po bardziej rozbudowanym projekcie. Domyślny rozmiar
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Zajęcia z grafiki komputerowej Pov Ray część 2
Zajęcia z grafiki komputerowej Pov Ray część 2 Stwórzmy na początek pustą scenę. #include "colors.inc" camera { location look_at 0 angle 36 White plane { , -1.5 pigment
Opis implementacji: Poznanie zasad tworzenia programów komputerowych za pomocą instrukcji języka programowania.
Nazwa implementacji: Robot biedronka Autor: Jarosław Żok Opis implementacji: Poznanie zasad tworzenia programów komputerowych za pomocą instrukcji języka programowania. Gra została zaimplementowana z wykorzystaniem
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
CorelDRAW. 1. Rysunek rastrowy a wektorowy. 2. Opis okna programu
1. Rysunek rastrowy a wektorowy CorelDRAW Różnice między rysunkiem rastrowym (czasami nazywanym bitmapą) a wektorowym są olbrzymie. Szczególnie widoczne są podczas skalowania (czyli zmiany rozmiaru) rysunku
WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS
WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS Autor prezentacji: Michał Kołkowski Promotor: prof dr. hb. Włodzisław Duch SPIS TREŚCI 1. Ogólnie o Canvasie 2. Utworzenie szablonu do pracy z Canvas
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu
Laboratorium z Grafiki InŜynierskiej CAD W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2010. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska
Zajęcia nr 15 JavaScript wprowadzenie do JavaScript
Zajęcia nr 15 JavaScript wprowadzenie do JavaScript Prowadzący: Andrzej Gąsienica-Samek, strona kółka www.atinea.pl/kolko Wprowadzenie do jsfiddle.net Uruchom Chrome i wejdź na stronę http://jsfiddle.net.
Wstęp... 19 1. Podstawy... 23. 2. Pierwszy program... 29. 3. Definiowanie sceny 3D... 35. 4. Przekształcenia geometryczne... 47
Spis treści 3 Wstęp... 19 1. Podstawy... 23 1.1. Składnia...24 1.2. Typy danych...25 1.3. Układ współrzędnych...25 1.4. Barwy...26 1.5. Bufor ramki...26 1.6. Okno renderingu...26 1.7. Maszyna stanów...27
Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.
Simba 3D LOGO Scenariusz lekcji Dokument zawiera cykl proponowanych scenariuszy lekcji z wykorzystaniem programu dydaktycznego Simba 3D LOGO. Program ten oparty jest na edukacyjnym języku programowania
f = -50 cm ma zdolność skupiającą
19. KIAKOPIA 1. Wstęp W oku miarowym wymiary struktur oka, ich wzajemne odległości, promienie krzywizn powierzchni załamujących światło oraz wartości współczynników załamania ośrodków, przez które światło
Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów...
Spis treści Konwencje zastosowane w książce...5 Dodawanie stylów do dokumentów HTML oraz XHTML...6 Struktura reguł...9 Pierwszeństwo stylów... 10 Klasyfikacja elementów... 13 Sposoby wyświetlania elementów...
Opis funkcji modułu Konwerter 3D
Opis funkcji modułu Konwerter 3D www.cadprojekt.com.pl Kliknij na tytuł rozdziału, aby przejść do wybranego zagadnienia MODUŁ KONWERTER 3D...3 Wygląd i funkcje okna modułu Konwerter 3D...3 Konwertowanie
Rysowanie precyzyjne. Polecenie:
7 Rysowanie precyzyjne W ćwiczeniu tym pokazane zostaną różne techniki bardzo dokładnego rysowania obiektów w programie AutoCAD 2010, między innymi wykorzystanie punktów charakterystycznych. Z uwagi na
TUTORIAL: wyciągni. gnięcia po wielosegmentowej ście. cieżce ~ 1 ~
~ 1 ~ TUTORIAL: Sprężyna skrętna w SolidWorks jako wyciągni gnięcia po wielosegmentowej ście cieżce ce przykład Sprężyny występują powszechnie w maszynach, pojazdach, meblach, sprzęcie AGD i wielu innych
Jak tworzyć dobre wizualizacje? Porady do wykorzystania w programie KD Max. MTpartner s.c.
Jak tworzyć dobre wizualizacje? Porady do wykorzystania w programie KD Max MTpartner s.c. 1. Ustawienie widoku 1.1 Zasada mocnych punktów. Jeśli poprowadzimy 2 linie dzielące obraz w pionie na 3 równe
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Instrukcja obsługi programu PowRek
Instrukcja obsługi programu PowRek środa, 21 grudnia 2011 Spis treści Przeznaczenie programu... 4 Prezentacja programu... 5 Okno główne programu... 5 Opis poszczególnych elementów ekranu... 5 Nowy projekt...
Szybkie tworzenie grafiki w GcIde
Szybkie tworzenie grafiki w GcIde Opracował: Ryszard Olchawa Poniższy opis dotyczy aplikacji okienkowej w systemie Windows lub Linux bazującej na obiektowej bibliotece rofrm stworzonej w środowisku GcIde.
Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Podstawy grafiki 3D Wstęp: W drugiej części przedstawione zostaną podstawowe mechanizmy
AUTOCAD MIERZENIE I PODZIAŁ
AUTOCAD MIERZENIE I PODZIAŁ Czasami konieczne jest rozmieszczenie na obiekcie punktów lub bloków, w równych odstępach. Na przykład, moŝe zachodzić konieczność zlokalizowania na obiekcie punktów oddalonych