Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z



Podobne dokumenty
Wykład 12. Wprowadzenie do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z

Wykład 10. Wprowadzene do malarstwa, str. 1 OpenGL Open Graphics Library. OpenGL składa się z

Janusz Ganczarski. OpenGL Pierwszy program

2 Przygotował: mgr inż. Maciej Lasota

Janusz Ganczarski. OpenGL Definiowanie sceny 3D

Przekształcenia geometryczne. Dorota Smorawa

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Laboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

Temat: Transformacje 3D

Trójwymiarowa grafika komputerowa rzutowanie

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.

1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych

Temat: Wprowadzenie do OpenGL i GLUT

Animowana grafika 3D. Opracowanie: J. Kęsik.

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Rzutowanie DOROTA SMORAWA

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

Rysowanie punktów na powierzchni graficznej

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

1. Prymitywy graficzne

AUTOCAD teoria i zadania z podstaw rysowania Rysowanie linii, prostej, półprostej, punktu, trasy, polilinii. Zadania geodezyjne.

Techniki wstawiania tabel

Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.

Maskowanie i selekcja

Ćwiczenie nr 5 Zautomatyzowane tworzenie dokumentacji

DARMOWA PRZEGLĄDARKA MODELI IFC


GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

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.

Programowanie Procesorów Graficznych

AUTOCAD MIERZENIE I PODZIAŁ

Plan wykładu. Wykład 3. Rzutowanie prostokątne, widoki, przekroje, kłady. Rzutowanie prostokątne - geneza. Rzutowanie prostokątne - geneza

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Rys.1. Uaktywnianie pasków narzędzi. żądanych pasków narzędziowych. a) Modelowanie części: (standardowo widoczny po prawej stronie Przeglądarki MDT)

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

Rysowanie precyzyjne. Polecenie:

O czym należy pamiętać?

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:


INSTYTUT INFORMATYKI STOSOWANEJ MODELOWANIE CZĘŚCI Z WYKORZYSTANIEM PROGRAMU SOLID EDGE

Grafika 3D OpenGL część II

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D

Animacje z zastosowaniem suwaka i przycisku

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Tworzenie dokumentacji 2D

Grafika Komputerowa Materiały Laboratoryjne

OpenGL przezroczystość

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Języki formalne i automaty Ćwiczenia 5

Płaszczyzny, Obrót, Szyk

4. Rysowanie krzywych

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:

1. OPEN OFFICE RYSUNKI

Światła i rodzaje świateł. Dorota Smorawa

Zad. 6: Sterowanie robotem mobilnym

Projektowanie graficzne. Wykład 2. Open Office Draw

aksonometrie trójosiowe odmierzalne odwzorowania na płaszczyźnie

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

(1,10) (1,7) (5,5) (5,4) (2,1) (0,0) Grafika 3D program POV-Ray

Wstęp Pierwsze kroki Pierwszy rysunek Podstawowe obiekty Współrzędne punktów Oglądanie rysunku...

RZUTOWANIE PROSTOKĄTNE

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

Cel ćwiczenia: Celem ćwiczenia jest nabranie wprawy w rysowaniu kół i okręgów o zadanych rozmiarach.

Projekt połowicznej, prostej endoprotezy stawu biodrowego w programie SOLIDWorks.

Grafika i komunikacja człowiek komputer Laboratorium. Część 2: Graphics

Rys. 1. Rozpoczynamy rysunek pojedynczej części

Zadanie I. 2. Gdzie w przestrzeni usytuowane są punkty (w której ćwiartce leży dany punkt): F x E' E''

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Architektura interfejsu użytkownika

- biegunowy(kołowy) - kursor wykonuje skok w kierunku tymczasowych linii konstrukcyjnych;

CorelDraw - Edytor grafiki wektorowej

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

Praktyka programowania projekt

Przykłady zastosowania zaawansowanych operacji

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Transformacje obiektów 3D

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

3 Przygotował: mgr inż. Maciej Lasota

rysunkowej Rys. 1. Widok nowego arkusza rysunku z przeglądarką obiektów i wywołanym poleceniem edycja arkusza

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

RYSUNEK ODRĘCZNY PERSPEKTYWA

Wektory, układ współrzędnych

WSTĘP; NARZĘDZIA DO RYSOWANIA

Definicja obrotu: Definicja elementów obrotu:

Wyciągnięcie po ścieŝce, dodawanie Płaszczyzn

Zaawansowany kurs języka Python

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Prosty program- cpp. #include <GL/glut.h>

Przekształcanie wykresów.

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

METODA RZUTÓW MONGE A (II CZ.)

Następnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej

Układy współrzędnych GUW, LUW Polecenie LUW

CorelDraw - wbudowane obiekty wektorowe - prostokąty Rysowanie prostokątów

Jutro idę do szkoły - innowacyjny program edukacji przedszkolnej

Transkrypt:

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 dostępne są z różnych języków na wielu platformach.

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: Funkcje OpenGL dostępne są z różnych języków na wielu platformach. pliki nagłówkowe: #include <GL/glut.h>

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: Funkcje OpenGL dostępne są z różnych języków na wielu platformach. pliki nagłówkowe: #include <GL/glut.h> #include <math.h> jeśli liczymy obroty, rzuty, itp.

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: Funkcje OpenGL dostępne są z różnych języków na wielu platformach. pliki nagłówkowe: #include <GL/glut.h> #include <math.h> jeśli liczymy obroty, rzuty, itp. biblioteki do wspólnej kompilacji: gcc-lgl-lglu-lglut-lm...

Wykład 12. Wprowadzenie do malarstwa, str. 2 OpenGL Open Graphics Library Typowy Makefile: # nazwa programu: PROG = wprawki # biblioteki: LIBS=-lGL-lGLU-lglut-lm $(PROG):$(PROG).c gcc-wall-std=c99 $(PROG).c-o $(PROG) $(LIBS) usun: rm-f$(prog)*

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość);

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość); ustala początkową pozycję okna na ekranie: glutinitwindowposition(od lewej, od góry);

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość); ustala początkową pozycję okna na ekranie: glutinitwindowposition(od lewej, od góry); tworzy okno: glutcreatewindow(nazwa na ramce);

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość); ustala początkową pozycję okna na ekranie: glutinitwindowposition(od lewej, od góry); tworzy okno: glutcreatewindow(nazwa na ramce); ustalakolortła:glclearcolor(r,g,b,α);

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość); ustala początkową pozycję okna na ekranie: glutinitwindowposition(od lewej, od góry); tworzy okno: glutcreatewindow(nazwa na ramce); ustalakolortła:glclearcolor(r,g,b,α); wywołuje funkcję użytkownika odwzorowującą scenę w okno i przekazuje jej rozmiary okna: glutreshapefunc(funkcja);

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość); ustala początkową pozycję okna na ekranie: glutinitwindowposition(od lewej, od góry); tworzy okno: glutcreatewindow(nazwa na ramce); ustalakolortła:glclearcolor(r,g,b,α); wywołuje funkcję użytkownika odwzorowującą scenę w okno i przekazuje jej rozmiary okna: glutreshapefunc(funkcja); wywołuje funkcję użytkownika rysującą scenę: glutdisplayfunc(funkcja);

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 3 Program główny ustala początkowy rozmiar okna: glutinitwindowsize(szerokość, wysokość); ustala początkową pozycję okna na ekranie: glutinitwindowposition(od lewej, od góry); tworzy okno: glutcreatewindow(nazwa na ramce); ustalakolortła:glclearcolor(r,g,b,α); wywołuje funkcję użytkownika odwzorowującą scenę w okno i przekazuje jej rozmiary okna: glutreshapefunc(funkcja); wywołuje funkcję użytkownika rysującą scenę: glutdisplayfunc(funkcja); uruchamia rysowanie: glutmainloop();

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 4

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 4 glutinitwindowsize(400, 300); 300 400

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 4 glutinitwindowsize(400, 300); glutinitwindowposition(200, 250); 200 250 300 400

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 4 glutinitwindowsize(400, 300); glutinitwindowposition(200, 250); glutcreatewindow("wprawki"); 200 250 wprawki 300 400

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 4 glutinitwindowsize(400, 300); glutinitwindowposition(200, 250); glutcreatewindow("wprawki"); glclearcolor(zolty, 0.0); 200 250 wprawki 300 400

Sztalugi i płótno Wykład 12. Wprowadzenie do malarstwa, str. 4 glutinitwindowsize(400, 300); glutinitwindowposition(200, 250); glutcreatewindow("wprawki"); glclearcolor(zolty, 0.0); 200 250 wprawki Żeby okno się pojawiło, konieczna jest jeszcze komenda glutmainloop(); (por. program wprawki00.c). 300 400

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x z

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x z...

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x z...

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x [ 20..20] x z...

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x [ 20..20] y [ 15..15] x z...

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x [ 20..20] y [ 15..15] x z [ 5..5] z...

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 5 Funkcja wywołana w glutreshapefunc ustala geometrię. Patrzymy od strony dodatniej półosi z. Funkcja glortho(-20, 20,-15, 15,-5, 5); wyznacza prostopadłościan, którego zawartość zostanie przedstawiona: y x [ 20..20] y [ 15..15] x z [ 5..5] z...

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 6 O rzutowaniach

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 6 O rzutowaniach HORYZONT rzut zbieżny perspektywiczny

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 6 O rzutowaniach HORYZONT rzut zbieżny perspektywiczny rzut równoległy

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 6 O rzutowaniach HORYZONT rzut zbieżny perspektywiczny rzut równoległy Funkcja glortho realizuje rzut równoległy

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 6 O rzutowaniach HORYZONT rzut zbieżny perspektywiczny rzut równoległy Funkcja glortho realizuje rzut równoległy; rzut zbieżny realizuje funkcja gluperspective (nie na tym wykładzie).

Kadrowanie i głębia ostrości Wykład 12. Wprowadzenie do malarstwa, str. 6 O rzutowaniach HORYZONT rzut zbieżny perspektywiczny rzut równoległy Funkcja glortho realizuje rzut równoległy; rzut zbieżny realizuje funkcja gluperspective (nie na tym wykładzie). O zmienianiu punktu widzenia mowa będzie później.

Pierwsze szkice Funkcja wywołana w glutdisplayfunc tworzy rysunek. Wykład 12. Wprowadzenie do malarstwa, str. 7

Pierwsze szkice Funkcja wywołana w glutdisplayfunc tworzy rysunek. W OpenGL rysunek powstaje z wierzchołków Wykład 12. Wprowadzenie do malarstwa, str. 7

Pierwsze szkice Funkcja wywołana w glutdisplayfunc tworzy rysunek. W OpenGL rysunek powstaje z wierzchołków: Wykład 12. Wprowadzenie do malarstwa, str. 7 glbegin(gl LINE LOOP); glvertex3d(-5, 0, 0); glvertex3d( 0, 5, 0); glvertex3d( 5, 0, 0); glvertex3d( 0,-5, 0); glend();

Pierwsze szkice Funkcja wywołana w glutdisplayfunc tworzy rysunek. W OpenGL rysunek powstaje z wierzchołków: Wykład 12. Wprowadzenie do malarstwa, str. 7 glbegin(gl LINE LOOP); glvertex3d(-5, 0, 0); glvertex3d( 0, 5, 0); glvertex3d( 5, 0, 0); glvertex3d( 0,-5, 0); glend(); ( 5,0,0) (0,5,0) (0, 5,0) (5,0,0)

Pierwsze szkice Funkcja wywołana w glutdisplayfunc tworzy rysunek. W OpenGL rysunek powstaje z wierzchołków: Wykład 12. Wprowadzenie do malarstwa, str. 7 glbegin(gl LINE LOOP); glvertex3d(-5, 0, 0); glvertex3d( 0, 5, 0); glvertex3d( 5, 0, 0); glvertex3d( 0,-5, 0); glend(); ( 5,0,0) (0,5,0) (0, 5,0) (5,0,0) GL POINTS rysuje zbiór punktów. GL LINES rysuje pary odcinków. GL LINE STRIP rysuje łamaną otwartą. GL LINE LOOP rysuje łamaną zamkniętą. GL POLYGON rysuje wypełniony wielokąt.

Pierwsze szkice Funkcja wywołana w glutdisplayfunc tworzy rysunek. W OpenGL rysunek powstaje z wierzchołków: Wykład 12. Wprowadzenie do malarstwa, str. 7 glbegin(gl LINE LOOP); glvertex3d(-5, 0, 0); glvertex3d( 0, 5, 0); glvertex3d( 5, 0, 0); glvertex3d( 0,-5, 0); glend(); ( 5,0,0) (0,5,0) (0, 5,0) (5,0,0) GL POINTS rysuje zbiór punktów. GL LINES rysuje pary odcinków. GL LINE STRIP rysuje łamaną otwartą. GL LINE LOOP rysuje łamaną zamkniętą. GL POLYGON rysuje wypełniony wielokąt. (por. program wprawki01.c).

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 8 Modyfikacje rysunku

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 8 Modyfikacje rysunku glcolor3d(kolor); ustalenie koloru(ważne aż do ustalenia nowego koloru); np. glcolor3d(1.0, 0.0, 0.0); oznaczaczerwony(r=1.0,g=0.0,b=0.0);

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 8 Modyfikacje rysunku glcolor3d(kolor); ustalenie koloru(ważne aż do ustalenia nowego koloru); np. glcolor3d(1.0, 0.0, 0.0); oznaczaczerwony(r=1.0,g=0.0,b=0.0); gllinewidth(liczba pikseli); ustalenie grubości linii(ważne aż do ustalenia nowej grubości); np. gllinewidth(5); oznacza linie szerokości 5 pikseli;

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 8 Modyfikacje rysunku glcolor3d(kolor); ustalenie koloru(ważne aż do ustalenia nowego koloru); np. glcolor3d(1.0, 0.0, 0.0); oznaczaczerwony(r=1.0,g=0.0,b=0.0); gllinewidth(liczba pikseli); ustalenie grubości linii(ważne aż do ustalenia nowej grubości); np. gllinewidth(5); oznacza linie szerokości 5 pikseli; glpushmatrix(); gltranslated(x, y, z); glpopmatrix(); przesunięcieobrazkaowektor(x,y,z).

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 9 Ciało funkcji rysującej musi

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 9 Ciało funkcji rysującej musi zaczynaćsięod glclear(gl COLOR BUFFER BIT); inaczej w rysunku mogą wystąpić śmieci

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 9 Ciało funkcji rysującej musi zaczynaćsięod glclear(gl COLOR BUFFER BIT); inaczej w rysunku mogą wystąpić śmieci

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 9 Ciało funkcji rysującej musi zaczynaćsięod glclear(gl COLOR BUFFER BIT); inaczej w rysunku mogą wystąpić śmieci; kończyćsięna glflush(); (ang. flush = spłukać) żeby przygotowany rysunek się pojawił.

Pierwsze szkice Wykład 12. Wprowadzenie do malarstwa, str. 9 Ciało funkcji rysującej musi zaczynaćsięod glclear(gl COLOR BUFFER BIT); inaczej w rysunku mogą wystąpić śmieci; kończyćsięna glflush(); (ang. flush = spłukać) żeby przygotowany rysunek się pojawił.

Linie inne niż łamane Wykład 12. Wprowadzenie do malarstwa, str. 10 Linie inne niż łamane są rysowane jako łamane z bardzo krótkich odcinków.

Linie inne niż łamane Wykład 12. Wprowadzenie do malarstwa, str. 10 Linie inne niż łamane są rysowane jako łamane z bardzo krótkich odcinków. glbegin(gl LINE STRIP); for(double x=-4.0; x<=4.0; x+=przyrost) glvertex3d(x, x*x-7, 0); glend(); parabola

Linie inne niż łamane Wykład 12. Wprowadzenie do malarstwa, str. 10 Linie inne niż łamane są rysowane jako łamane z bardzo krótkich odcinków. glbegin(gl LINE STRIP); for(double x=-4.0; x<=4.0; x+=przyrost) glvertex3d(x, x*x-7, 0); glend(); parabola glbegin(gl POLYGON); for(double kat=0; kat<=2*m PI; kat+=przyrost) glvertex3d(prom*cos(kat), prom*sin(kat), 0); glend(); koło pełne

Linie inne niż łamane Wykład 12. Wprowadzenie do malarstwa, str. 10 Linie inne niż łamane są rysowane jako łamane z bardzo krótkich odcinków. glbegin(gl LINE STRIP); for(double x=-4.0; x<=4.0; x+=przyrost) glvertex3d(x, x*x-7, 0); glend(); parabola glbegin(gl POLYGON); for(double kat=0; kat<=2*m PI; kat+=przyrost) glvertex3d(prom*cos(kat), prom*sin(kat), 0); glend(); koło pełne (por. program wprawki02.c).

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar.

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar.

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar.

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar.

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar.

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar. (por. program wprawki03.c).

Ćwiczenie z rysowania buźki Wykład 12. Wprowadzenie do malarstwa, str. 11 Buźka składa się z: okręgu stanowiącego obrys; koła stanowiącego wypełnienie; oczuzłożonychzdwóchłuków (odcinków okręgu); ust wycinkakoła; nosa kuli,wystającejwtrzeci wymiar. (por. program wprawki03.c). To,żenosjestkuląaniekołem,uwidocznisię,kiedybędziemymoglispojrzećnabuźkęzboku.

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 12 Jeśli niczego nie zażądamy na rysunku zostanie przedstawiona zawartość sześcianu [ 1..1] [ 1..1] [ 1..1] obraz będzie przedstawiony z punktu widzenia obserwatora na osi z, patrzącego w kierunku od plusów do minusów

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 12 Jeśli niczego nie zażądamy, to: na rysunku zostanie przedstawiona zawartość sześcianu [ 1..1] [ 1..1] [ 1..1] obraz będzie przedstawiony z punktu widzenia obserwatora na osi z, patrzącego w kierunku od plusów do minusów y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 12 Jeśli niczego nie zażądamy, to: na rysunku zostanie przedstawiona zawartość sześcianu [ 1..1] [ 1..1] [ 1..1] obraz będzie przedstawiony z punktu widzenia obserwatora na osi z, patrzącego w kierunku od plusów do minusów y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 12 Jeśli niczego nie zażądamy, to: na rysunku zostanie przedstawiona zawartość sześcianu [ 1..1] [ 1..1] [ 1..1] obraz będzie przedstawiony z punktu widzenia obserwatora na osi z, patrzącego w kierunku od plusów do minusów y x z czyli tak: (por. program wprawki04.c).

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 13 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ) x x x + y y y + z + z z y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 13 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 13 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z Przykład: M glortho(-2,2,-2,2,-2,2) y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 13 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z y x z Przykład: M glortho(-2,2,-2,2,-2,2): glortho(-1,1,-2,2,-1,1) (por. program wprawki05.c)

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 13 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z y x z Przykład: M glortho(-2,2,-2,2,-2,2): glortho(-1,1,-2,2,-1,1): (por. program wprawki05.c) (por. program wprawki06.c)

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 14 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z Przykład: M glortho(0,2,-1,1,-1,1) y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 14 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z Przykład: M glortho(0,2,-1,1,-1,1): y glortho(-1,1,-1,1, 1,2) x z (por. program wprawki07.c)

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 14 Zmiany zakresu sceny dokonuje funkcja glortho(x,x +,y,y +,z,z + ): x x x + y y y + z + z z y x z Przykład: M glortho(0,2,-1,1,-1,1): glortho(-1,1,-1,1, 1,2): (por. program wprawki07.c) (por. program wprawki08.c)

Co widzimy na rysunku? Zmiany punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 15

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ) Wykład 12. Wprowadzenie do malarstwa, str. 15

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ): Wykład 12. Wprowadzenie do malarstwa, str. 15 oko= oko x,oko y,oko z punkt,wktórymustawionajest kamera

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ): Wykład 12. Wprowadzenie do malarstwa, str. 15 oko= oko x,oko y,oko z punkt,wktórymustawionajest kamera, centrum= centrum x,centrum y,centrum z punkt,naktórypatrzy

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ): Wykład 12. Wprowadzenie do malarstwa, str. 15 oko= oko x,oko y,oko z punkt,wktórymustawionajest kamera, centrum= centrum x,centrum y,centrum z punkt,naktórypatrzy Jeszcze trzeba powiedzieć, jak kamera jest przekręcona

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ): Wykład 12. Wprowadzenie do malarstwa, str. 15 oko= oko x,oko y,oko z punkt,wktórymustawionajest kamera, centrum= centrum x,centrum y,centrum z punkt,naktórypatrzy Jeszcze trzeba powiedzieć, jak kamera jest przekręcona:......

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ): Wykład 12. Wprowadzenie do malarstwa, str. 15 oko= oko x,oko y,oko z punkt,wktórymustawionajest kamera, centrum= centrum x,centrum y,centrum z punkt,naktórypatrzy Jeszcze trzeba powiedzieć, jak kamera jest przekręcona:......

Co widzimy na rysunku? Zmiany punktu widzenia dokonuje funkcja glulookat(oko x,oko y,oko z, centrum x,centrum y,centrum z, góra x,góra y,góra z ): Wykład 12. Wprowadzenie do malarstwa, str. 15 oko= oko x,oko y,oko z punkt,wktórymustawionajest kamera, centrum= centrum x,centrum y,centrum z punkt,naktórypatrzy Jeszcze trzeba powiedzieć, jak kamera jest przekręcona:...... góra= góra x,góra y,góra z wektornarysunkuskierowanywgórę

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x z

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x.. z....

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x.. z....

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x.. z....

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x.. z....

Co widzimy na rysunku? Wykład 12. Wprowadzenie do malarstwa, str. 16 Przykład: M glulookat(-0.6,0.7,1, 0,0,0,0,1,0); -0.6 przesunięcie kamery w lewo 0.7 przesunięcie kamery w górę 0,0,0 skierowanie na środek 0,1,0 osiąykugórze (por. program wprawki09.c) y x.. z....

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze)

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku.

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat: pierwsze trzy argumenty współrzędne oka

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat: pierwsze trzy argumenty współrzędne oka; następne trzy argumenty współrzędne punktu, na który patrzymy

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat: pierwsze trzy argumenty współrzędne oka; następne trzy argumenty współrzędne punktu, na który patrzymy; ostatnie trzy argumenty kierunek w górę obrazka.

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat: pierwsze trzy argumenty współrzędne oka; następne trzy argumenty współrzędne punktu, na który patrzymy; ostatnie trzy argumenty kierunek w górę obrazka. Uwaga: Użycie funkcji glulookat powoduje zmianę ustawienia w przestrzeni(obrót) przedstawianego obiektu.

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat: pierwsze trzy argumenty współrzędne oka; następne trzy argumenty współrzędne punktu, na który patrzymy; ostatnie trzy argumenty kierunek w górę obrazka. Uwaga: Użycie funkcji glulookat powoduje zmianę ustawienia w przestrzeni(obrót) przedstawianego obiektu. W wyniku tej zmiany może on przestać się mieścić w prostopadłościanie, wyznaczonym przez funkcję glortho.

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 17 glulookat(gdzie jest oko, na co patrzy, co przedstawić na górze) Standardowo OpenGL patrzy odstronydodatniejpółosiz w kierunku punktu jej ujemnych wartości tak, żeby dodatnia półoś y wskazywała w górę rysunku. Możemy to zmienić przez użycie funkcji glulookat: pierwsze trzy argumenty współrzędne oka; następne trzy argumenty współrzędne punktu, na który patrzymy; ostatnie trzy argumenty kierunek w górę obrazka. Uwaga: Użycie funkcji glulookat powoduje zmianę ustawienia w przestrzeni(obrót) przedstawianego obiektu. W wyniku tej zmiany może on przestać się mieścić w prostopadłościanie, wyznaczonym przez funkcję glortho. Dwukrotne zastosowanie funkcji glulookat powoduje dalszy obrót(por. program wprawki10.c).

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 18 Standardowy punkt widzenia

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 18 Standardowy punkt widzenia Punkt widzenia po glulookat(3,0,1, 0,0,0, 0,1,0);

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 18 Standardowy punkt widzenia Punkt widzenia po glulookat(3,0,1, 0,0,0, 0,1,0); okonapłaszczyźniexz,bardzozprawej

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 18 Standardowy punkt widzenia Punkt widzenia po glulookat(3,0,1, 0,0,0, 0,1,0); okonapłaszczyźniexz,bardzozprawej centrum sceny w początku układu współrzędnych

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 18 Standardowy punkt widzenia Punkt widzenia po glulookat(3,0,1, 0,0,0, 0,1,0); okonapłaszczyźniexz,bardzozprawej centrum sceny w początku układu współrzędnych, ośypatrzywgórę.

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 18 Standardowy punkt widzenia Punkt widzenia po glulookat(3,0,1, 0,0,0, 0,1,0); okonapłaszczyźniexz,bardzozprawej centrum sceny w początku układu współrzędnych, ośypatrzywgórę. (por. program wprawki11.c).

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 19 OpenGL transformuje kierunki rzutowania(również oświetlenie itp.) przy pomocy rachunku macierzowego. Zmianie punktu widzenia odpowiada przekształcenie obrazu, polegające na pomnożeniu przez odpowiednią macierz.

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 19 OpenGL transformuje kierunki rzutowania(również oświetlenie itp.) przy pomocy rachunku macierzowego. Zmianie punktu widzenia odpowiada przekształcenie obrazu, polegające na pomnożeniu przez odpowiednią macierz. Polecenie ustalenia rzutu(np. równoległego) w funkcji odpowiedzialnej za geometrię należy poprzedzić informacją, że będziemy zmieniać macierz odpowiedzialną za perspektywę i że początkowo ma to być macierz jednostkowa

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 19 OpenGL transformuje kierunki rzutowania(również oświetlenie itp.) przy pomocy rachunku macierzowego. Zmianie punktu widzenia odpowiada przekształcenie obrazu, polegające na pomnożeniu przez odpowiednią macierz. Polecenie ustalenia rzutu(np. równoległego) w funkcji odpowiedzialnej za geometrię należy poprzedzić informacją, że będziemy zmieniać macierz odpowiedzialną za perspektywę i że początkowo ma to być macierz jednostkowa: voidgeom(intw,inth) { glmatrixmode(gl PROJECTION); glloadidentity(); glortho(-20, 20,-15, 15,-25, 25); }

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 20 OpenGL transformuje kierunki rzutowania(również oświetlenie itp.) przy pomocy rachunku macierzowego. Zmianie punktu widzenia odpowiada przekształcenie obrazu, polegające na pomnożeniu przez odpowiednią macierz. Polecenie ustalenia punktu widzenia w funkcji odpowiedzialnej za wyswietlanie należy poprzedzić informacją, że będziemy zmieniać macierz odpowiedzialną za widok modelu, oraz że początkowo ma to być macierz jednostkowa

Zmiana punktu widzenia Wykład 12. Wprowadzenie do malarstwa, str. 20 OpenGL transformuje kierunki rzutowania(również oświetlenie itp.) przy pomocy rachunku macierzowego. Zmianie punktu widzenia odpowiada przekształcenie obrazu, polegające na pomnożeniu przez odpowiednią macierz. Polecenie ustalenia punktu widzenia w funkcji odpowiedzialnej za wyswietlanie należy poprzedzić informacją, że będziemy zmieniać macierz odpowiedzialną za widok modelu, oraz że początkowo ma to być macierz jednostkowa: void wyswietl(void) { glclear(gl COLOR BUFFER BIT); glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(3,0,1, 0,0,0, 0,1,0); twarz(); glflush(); }

Wykład 12. Wprowadzenie do malarstwa, str. 21 Film ruchomy(ale ciągle niemy) Jak wyświetlać różniące się obrazki jeden za drugim, żeby uzyskać efekt ruchu?

Wykład 12. Wprowadzenie do malarstwa, str. 21 Film ruchomy(ale ciągle niemy) Jak wyświetlać różniące się obrazki jeden za drugim, żeby uzyskać efekt ruchu? funkcji wyświetlającej zabrać odpowiedzialność za punkt widzenia: void wyswietl(void) { glclear(gl COLOR BUFFER BIT); glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(3,0,1, 0,0,0, 0,1,0); twarz(); glflush(); }

Wykład 12. Wprowadzenie do malarstwa, str. 21 Film ruchomy(ale ciągle niemy) Jak wyświetlać różniące się obrazki jeden za drugim, żeby uzyskać efekt ruchu? funkcji wyświetlającej zabrać odpowiedzialność za punkt widzenia: void wyswietl(void) { glclear(gl COLOR BUFFER BIT); glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(3,0,1, 0,0,0, 0,1,0); twarz(); glflush(); } (ale pozostawić zbudowanie początkowego obrazka).

Wykład 12. Wprowadzenie do malarstwa, str. 21 Film ruchomy(ale ciągle niemy) Jak wyświetlać różniące się obrazki jeden za drugim, żeby uzyskać efekt ruchu? funkcji wyświetlającej zabrać odpowiedzialność za punkt widzenia: void wyswietl(void) { glclear(gl COLOR BUFFER BIT); glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(3,0,1, 0,0,0, 0,1,0); twarz(); glflush(); } (ale pozostawić zbudowanie początkowego obrazka). dodatkowej funkcji powierzyć modyfikacje obrazka; np. co ustalony czas; albo co kliknięcie myszą.

Wykład 12. Wprowadzenie do malarstwa, str. 22 Film ruchomy(ale ciągle niemy) W części main umieścić informację, że będzie używany czasomierz: gluttimerfunc(15, timer, 0); zwłoka w milisekundach funkcja czasomierza parametr dla fkcji czasomierza

Wykład 12. Wprowadzenie do malarstwa, str. 22 Film ruchomy(ale ciągle niemy) W części main umieścić informację, że będzie używany czasomierz: gluttimerfunc(15, timer, 0); zwłoka w milisekundach Zdefiniować zmiany w obrazku: funkcja czasomierza parametr dla fkcji czasomierza void timer(int v) { staticdoublealfa=0; alfa+=katobrotu; if(alfa>=2*mpi)alfa-=2*mpi; glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(20*cos(alfa), 7, 20*sin(alfa), 0,0,0, 0,1,0); glutpostredisplay(); gluttimerfunc(15, timer, v); }

Wykład 12. Wprowadzenie do malarstwa, str. 22 Film ruchomy(ale ciągle niemy) W części main umieścić informację, że będzie używany czasomierz: gluttimerfunc(15, timer, 0); zwłoka w milisekundach Zdefiniować zmiany w obrazku: funkcja czasomierza parametr dla fkcji czasomierza void timer(int v) { staticdoublealfa=0; alfa+=katobrotu; if(alfa>=2*mpi)alfa-=2*mpi; glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(20*cos(alfa), 7, 20*sin(alfa), 0,0,0, 0,1,0); glutpostredisplay(); gluttimerfunc(15, timer, v); } obrótwokółosiy

Wykład 12. Wprowadzenie do malarstwa, str. 22 Film ruchomy(ale ciągle niemy) W części main umieścić informację, że będzie używany czasomierz: gluttimerfunc(15, timer, 0); zwłoka w milisekundach Zdefiniować zmiany w obrazku: funkcja czasomierza parametr dla fkcji czasomierza void timer(int v) { staticdoublealfa=0; alfa+=katobrotu; if(alfa>=2*mpi)alfa-=2*mpi; glmatrixmode(gl MODELVIEW); glloadidentity(); glulookat(20*cos(alfa), 7, 20*sin(alfa), 0,0,0, 0,1,0); glutpostredisplay(); gluttimerfunc(15, timer, v); } (por. program wprawki12.c). obrótwokółosiy

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć?

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć?

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć?

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć?

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć? Sprawdzanie głębokości OpenGL może sprawdzać odległość elementów sceny od obserwatora i nie rysować dalszych, zasłoniętych przez bliższe.

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć? Sprawdzanie głębokości OpenGL może sprawdzać odległość elementów sceny od obserwatora i nie rysować dalszych, zasłoniętych przez bliższe. W części main: glenable(gl DEPTH TEST); W funkcji wyświetlającej: glclear(gl DEPTH BUFFER BIT);

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć? Sprawdzanie głębokości OpenGL może sprawdzać odległość elementów sceny od obserwatora i nie rysować dalszych, zasłoniętych przez bliższe. W części main: glenable(gl DEPTH TEST); W funkcji wyświetlającej: glclear(gl DEPTH BUFFER BIT);

Dlaczego nos wędruje? Wykład 12. Wprowadzenie do malarstwa, str. 23 Fragmenty obrazka narysowane później zakrywają fragmenty narysowane wcześniej. Nos był narysowany na końcu, dlatego jest stale na wierzchu. Jak to leczyć? Sprawdzanie głębokości OpenGL może sprawdzać odległość elementów sceny od obserwatora i nie rysować dalszych, zasłoniętych przez bliższe. W części main: glenable(gl DEPTH TEST); (por. program wprawki13.c). W funkcji wyświetlającej: glclear(gl DEPTH BUFFER BIT);

Zasłanianie dlaczego miga?! Wykład 12. Wprowadzenie do malarstwa, str. 24 Dwa wielokąty wypełnienie buzki i usta są narysowane w tej samej płaszczyźnie, więc OpenGL nie wie, który powinien zasłaniać który. Jak to leczyć?

Zasłanianie dlaczego miga?! Wykład 12. Wprowadzenie do malarstwa, str. 24 Dwa wielokąty wypełnienie buzki i usta są narysowane w tej samej płaszczyźnie, więc OpenGL nie wie, który powinien zasłaniać który. Jak to leczyć?

Zasłanianie dlaczego miga?! Wykład 12. Wprowadzenie do malarstwa, str. 24 Dwa wielokąty wypełnienie buzki i usta są narysowane w tej samej płaszczyźnie, więc OpenGL nie wie, który powinien zasłaniać który. Jak to leczyć?

Zasłanianie dlaczego miga?! Wykład 12. Wprowadzenie do malarstwa, str. 24 Dwa wielokąty wypełnienie buzki i usta są narysowane w tej samej płaszczyźnie, więc OpenGL nie wie, który powinien zasłaniać który. Jak to leczyć? Lekko przesunąć w przestrzeni jeden wielokąt, żeby uniknąć współpłaszczyznowości z drugim

Zasłanianie dlaczego miga?! Wykład 12. Wprowadzenie do malarstwa, str. 24 Dwa wielokąty wypełnienie buzki i usta są narysowane w tej samej płaszczyźnie, więc OpenGL nie wie, który powinien zasłaniać który. Jak to leczyć? Lekko przesunąć w przestrzeni jeden wielokąt, żeby uniknąć współpłaszczyznowości z drugim: glpushmatrix(); gltranslated(0, 0, 0.5); glbegin(gl POLYGON); odcinek okregu(1.414*4, 5*M PI/4, 7*M PI/4); glend(); glpopmatrix();

Zasłanianie dlaczego miga?! Wykład 12. Wprowadzenie do malarstwa, str. 24 Dwa wielokąty wypełnienie buzki i usta są narysowane w tej samej płaszczyźnie, więc OpenGL nie wie, który powinien zasłaniać który. Jak to leczyć? Lekko przesunąć w przestrzeni jeden wielokąt, żeby uniknąć współpłaszczyznowości z drugim: glpushmatrix(); gltranslated(0, 0, 0.5); glbegin(gl POLYGON); odcinek okregu(1.414*4, 5*M PI/4, 7*M PI/4); glend(); glpopmatrix(); (por. program wprawki14.c).

Więcej przestrzeni! Wykład 12. Wprowadzenie do malarstwa, str. 25 Drugiednoodtyłu glpushmatrix(); gltranslated(0, 0,-2); glcolor3d(czarn); //obrysbuzki... glcolor3d(szary); // wypelnienie buzki... glpopmatrix();

Więcej przestrzeni! Wykład 12. Wprowadzenie do malarstwa, str. 25 Drugiednoodtyłu korzyśćzprzesunięć: glpushmatrix(); gltranslated(0, 0,-2); glcolor3d(czarn); //obrysbuzki... glcolor3d(szary); // wypelnienie buzki... glpopmatrix();

Więcej przestrzeni! Wykład 12. Wprowadzenie do malarstwa, str. 25 Drugiednoodtyłu korzyśćzprzesunięć: glpushmatrix(); gltranslated(0, 0,-2); glcolor3d(czarn); //obrysbuzki... glcolor3d(szary); // wypelnienie buzki... glpopmatrix(); (por. program wprawki15.c).

Więcej przestrzeni! Wykład 12. Wprowadzenie do malarstwa, str. 25 Drugiednoodtyłu korzyśćzprzesunięć: glpushmatrix(); gltranslated(0, 0,-2); glcolor3d(czarn); //obrysbuzki... glcolor3d(szary); // wypelnienie buzki... glpopmatrix(); (por. program wprawki15.c). Zadanie domowe: Dorobić powierzchnię walcową między dwoma szarymi kołami, żeby zamknąć pudełko.

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 26 Bez właściwego oświetlenia nie widać przestrzenności: Ilustracja z http://www.glprogramming.com/red/chapter05.html (por. program wprawki16.c).

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 27 Ustawianie źródeł światła: glenable(gl LIGHTING); GLfloatswiatlomce[]={2,2,-1,0}; gllightfv(gl LIGHT0, GL POSITION, swiatlo mce); glenable(gl LIGHT0); glenable(gl COLOR MATERIAL);

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 27 Ustawianie źródeł światła: glenable(gl LIGHTING); GLfloatswiatlomce[]={2,2,-1,0}; gllightfv(gl LIGHT0, GL POSITION, swiatlo mce); glenable(gl LIGHT0); glenable(gl COLOR MATERIAL); Oświetlenie jest rzeczą skomplikowaną.

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 27 Ustawianie źródeł światła: glenable(gl LIGHTING); GLfloatswiatlomce[]={2,2,-1,0}; gllightfv(gl LIGHT0, GL POSITION, swiatlo mce); glenable(gl LIGHT0); glenable(gl COLOR MATERIAL); Oświetlenie jest rzeczą skomplikowaną. W OpenGL można ustawiać m.in. charakterystykę światła(kolor, rozproszenie itp.)

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 27 Ustawianie źródeł światła: glenable(gl LIGHTING); GLfloatswiatlomce[]={2,2,-1,0}; gllightfv(gl LIGHT0, GL POSITION, swiatlo mce); glenable(gl LIGHT0); glenable(gl COLOR MATERIAL); Oświetlenie jest rzeczą skomplikowaną. W OpenGL można ustawiać m.in. charakterystykę światła(kolor, rozproszenie itp.), geometrię powierzchni odbijającej(jak jest powyginana)

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 27 Ustawianie źródeł światła: glenable(gl LIGHTING); GLfloatswiatlomce[]={2,2,-1,0}; gllightfv(gl LIGHT0, GL POSITION, swiatlo mce); glenable(gl LIGHT0); glenable(gl COLOR MATERIAL); Oświetlenie jest rzeczą skomplikowaną. W OpenGL można ustawiać m.in. charakterystykę światła(kolor, rozproszenie itp.), geometrię powierzchni odbijającej(jak jest powyginana), charakterystykę powierzchni odbijającej(kolor, połysk, gładkość, itp.)

Więcej światła! Wykład 12. Wprowadzenie do malarstwa, str. 27 Ustawianie źródeł światła: glenable(gl LIGHTING); GLfloatswiatlomce[]={2,2,-1,0}; gllightfv(gl LIGHT0, GL POSITION, swiatlo mce); glenable(gl LIGHT0); glenable(gl COLOR MATERIAL); Oświetlenie jest rzeczą skomplikowaną. W OpenGL można ustawiać m.in. charakterystykę światła(kolor, rozproszenie itp.), geometrię powierzchni odbijającej(jak jest powyginana), charakterystykę powierzchni odbijającej(kolor, połysk, gładkość, itp.), osłabianie i rozmywanie światła przez odległość, mgłę itd.

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c).

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. Jeśli Fjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. Jeśli Fjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. JeśliFjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to jejprędkośćwchwilit+ twyniesie v+ t F (m masa m piłeczki)

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. JeśliFjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to jejprędkośćwchwilit+ twyniesie v+ t F (m masa m piłeczki); jejpołożeniewchwilit+ twyniesie r+ t v+ t2 F. 2m

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. JeśliFjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to jejprędkośćwchwilit+ twyniesie v+ t F (m masa m piłeczki); jejpołożeniewchwilit+ twyniesie r+ t v+ t2 F. 2m Na piłeczkę działają dwie siły: grawitacja:m g=m 0, g,0,gdzieg 10 m s 2 jestprzyspieszeniem grawitacyjnym

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. JeśliFjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to jejprędkośćwchwilit+ twyniesie v+ t F (m masa m piłeczki); jejpołożeniewchwilit+ twyniesie r+ t v+ t2 F. 2m Na piłeczkę działają dwie siły: grawitacja:m g=m 0, g,0,gdzieg 10 m s 2 jestprzyspieszeniem grawitacyjnym; opór powietrza proporcjonalny do kwadratu prędkości i przeciwnieskierowany: ω v v.

Wykład 12. Wprowadzenie do malarstwa, str. 28 Skacząca piłeczka, czyli trochę fizyki (por. program wprawki17.c). Ruch obiektów bez własnego napędu odbywa się pod wpływem sił. JeśliFjestsumą(wektorową!)siłdziałającychnapiłeczkę,mającąw chwilitprędkość vipołożenie r,to jejprędkośćwchwilit+ twyniesie v+ t F (m masa m piłeczki); jejpołożeniewchwilit+ twyniesie r+ t v+ t2 F. 2m Na piłeczkę działają dwie siły: grawitacja:m g=m 0, g,0,gdzieg 10 m s 2 jestprzyspieszeniem grawitacyjnym; opór powietrza proporcjonalny do kwadratu prędkości i przeciwnieskierowany: ω v v. Odbicie: kiedy piłeczka dotknie podłogi(czyli jej y będzie mniejszy od promienia), to pionowa składowa prędkości zmieni się na przeciwną.