Zadanie polega na zbudowaniu i wyświetleniu przykładowej animowanej sceny przedstawiającej robota spawalniczego typu PUMA.

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

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

11. Znajdż równanie prostej prostopadłej do prostej k i przechodzącej przez punkt A = (2;2).

Pytania do spr / Własności figur (płaskich i przestrzennych) (waga: 0,5 lub 0,3)

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

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

Rysowanie precyzyjne. Polecenie:

ROZKŁAD MATERIAŁU Z MATEMATYKI DLA KLASY IV SP NA PODSTAWIE PROGRAMU DKW /99 Liczę z Pitagorasem

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Wymagania na poszczególne oceny szkolne z. matematyki. dla uczniów klasy IIIa i IIIb. Gimnazjum im. Jana Pawła II w Mętowie. w roku szkolnym 2015/2016

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

Lista działów i tematów

ZESPÓŁ SZKÓŁ W OBRZYCKU

Lista działów i tematów

Przedmiotowe zasady oceniania i wymagania edukacyjne z matematyki dla klasy drugiej gimnazjum

KRYTERIA OCEN Z MATEMATYKI DLA UCZNIÓW KL. II GIMNAZJUM

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

WYMAGANIA EDUKACYJN KRYTERIA OCENY Z MATEMATYKI W KLASIE II GIMNAZJUM

Matematyka, kl. 6. Konieczne umiejętności

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

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY TRZECIEJ NA ROK SZKOLNY 2011/2012 DO PROGRAMU MATEMATYKA Z PLUSEM

Plan wykładu. Akcelerator 3D Potok graficzny

Wymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum

Matematyka z plusem dla szkoły ponadgimnazjalnej. ZAŁOŻENIA DO PLANU RALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI W KLASIE III (zakres podstawowy)

WYMAGANIA NA OCENĘ 12. Równania kwadratowe Uczeń demonstruje opanowanie umiejętności ogólnych rozwiązując zadania, w których:

DZIAŁ 1. STATYSTYKA DZIAŁ 2. FUNKCJE

Tematy: zadania tematyczne

Matematyka. - dodawanie, odejmowanie, mnożenie i dzielenie pamięciowe

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Lista działów i tematów

Wymagania na poszczególne oceny w klasie II gimnazjum do programu nauczania MATEMATYKA NA CZASIE

1. Proporcjonalnością prostą jest zależność opisana wzorem: x 5

ROK SZKOLNY 2017/2018 WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY:

Definicja obrotu: Definicja elementów obrotu:

OpenGL przezroczystość

Zadania do samodzielnego rozwiązania zestaw 11

1. Prymitywy graficzne

Wymagania z matematyki KLASA VII

SPIS TREŚCI. Do Nauczyciela Regulamin konkursu Zadania

Pokrywka. Rysunek 1. Projekt - wynik końcowy. Rysunek 2. Pierwsza linia łamana szkicu

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI W KLASIE IV

MECHANIKA 2 RUCH POSTĘPOWY I OBROTOWY CIAŁA SZTYWNEGO. Wykład Nr 2. Prowadzący: dr Krzysztof Polko

Wymagania edukacyjne, kontrola i ocena. w nauczaniu matematyki w zakresie. podstawowym dla uczniów technikum. część II

klasa I Dział Główne wymagania edukacyjne Forma kontroli

3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas

Rozdział VII. Przekształcenia geometryczne na płaszczyźnie Przekształcenia geometryczne Symetria osiowa Symetria środkowa 328

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

7. PLANIMETRIA.GEOMETRIA ANALITYCZNA

Potencjalne pole elektrostatyczne. Przypomnienie

MATEMATYKA KLASY III gimnazjum LICZBY I WYRAŻENIA ALGEBRAICZNE

Przedmiotowe Zasady Oceniania

PRZEDMIOTOWY SYSTEM OCENIANIA- MATEMATYKA KLASA 6. Rok szkolny 2012/2013. Tamara Kostencka

PRZEDMIOTOWY SYSTEM OCENIANIA

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

ARKUSZ VIII

Dydaktyka matematyki (II etap edukacyjny) II rok matematyki Semestr letni 2016/2017 Ćwiczenia nr 9

Matematyka z plusem Klasa IV

Wymagania dla klasy szóstej Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: Mnożenie ułamków zwykłych

MAJ Czas pracy: 170 minut. do uzyskania: Miejsce na naklejkę z kodem PESEL KOD. punktów. pióra z czarnym tuszem. liczby. cyrkla.

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

Wymagania edukacyjne z matematyki dla klasy VII

1 Tworzenie brył obrotowych

Grafika 3D program POV-Ray - 1 -

MAJ Czas pracy: 170 minut. do uzyskania: Miejsce na naklejkę z kodem PESEL KOD. punktów. pióra z czarnym tuszem. liczby.

VIII. ZBIÓR PRZYKŁADOWYCH ZADAŃ MATURALNYCH

Matematyka Matematyka z pomysłem Klasy 4 6

Rys 3-1. Rysunek wałka

Wymagania edukacyjne z matematyki dla kl. VI

4.1. Modelowanie matematyczne

Rozkład materiału nauczania z matematyki dla klasy V

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

Konkurs dla gimnazjalistów Etap II 8 lutego 2017 roku

A. fałszywa dla każdej liczby x.b. prawdziwa dla C. prawdziwa dla D. prawdziwa dla

KONKURS ZOSTAŃ PITAGORASEM MUM. Podstawowe własności figur geometrycznych na płaszczyźnie

I Liceum Ogólnokształcące w Warszawie

WYMAGANIA PROGRAMOWE Z MATEMATYKI KLASA II

Test na koniec nauki w klasie trzeciej gimnazjum

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE DRUGIEJ GIMNAZJUM. rok szkolny 2016/2017

XXXVIII Regionalny Konkurs Rozkosze łamania Głowy

GEOMETRIA ELEMENTARNA

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE DRUGIEJ GIMNAZJUM w roku szkolnym 2015/2016

Lista 3 Funkcje. Środkowa częśd podanej funkcji, to funkcja stała. Jej wykresem będzie poziomy odcinek na wysokości 4.

Opis założonych osiągnięć ucznia klasy ZSZ (od 2012r.)

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

WOJEWÓDZKI KONKURS MATEMATYCZNY

PRÓBNA MATURA ZADANIA PRZYKŁADOWE

Przewodnik po Matlandii 8

SZCZEGÓŁOWY OPIS OSIĄGNIĘĆ NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA DRUGA

ARKUSZ X

3. FUNKCJA LINIOWA. gdzie ; ół,.

I. Funkcja kwadratowa

Równania prostych i krzywych; współrzędne punktu

ZAKRES WYMAGAŃ Z MATEMATYKI DLA KLASY III

Klasa 3 Przewodnik po zadaniach

TEMAT: PRZEKSZTAŁCENIA WYKRESÓW FUNKCJI PRZESUNIĘCIE O WEKTOR

Notacja Denavita-Hartenberga

. Funkcja ta maleje dla ( ) Zadanie 1 str. 180 b) i c) Zadanie 2 str. 180 a) i b)

Planimetria 1 12 godz.

Zestaw Obliczyć objętość równoległościanu zbudowanego na wektorach m, n, p jeśli wiadomo, że objętość równoległościanu zbudowanego na wektorach:

Transkrypt:

Zadanie PUMA Zadanie polega na zbudowaniu i wyświetleniu przykładowej animowanej sceny przedstawiającej robota spawalniczego typu PUMA. Cały projekt składa się z następujących elementów: 1. Animacja ramion robota przy pomocy rozwiązywania zadania kinematyki odwrotnej 2. Swobodna kamera o 5-ciu stopniach swobody 3. Oświetlenie 4. Bryły cienia 5. System cząstek reprezentujący iskry 6. Odbicie sceny w kawałku blachy Do zaliczenia wymagane są co najmniej trzy pierwsze punkty. Termin oddania projektu to 10.05 (miesiąc czasu na pisanie). Pisad można w C++ lub C#, z użyciem DirectX lub OpenGL. 1. Animacja ramion robota przy pomocy rozwiązywania zadania kinematyki odwrotnej Do zadania dołączone jest 6 plików tekstowych z danymi siatek trójkątów 6-ciu części (ramion) robota: mesh1.txt,..., mesh6.txt. Pierwsza częśd, to podstawa, każda kolejna reprezentuje kolejne ramię robota. Po wczytaniu i wyświetleniu siatek w ich lokalnych układach współrzędnych powinno się uzyskad obraz jak na zrzucie ekranu powyżej, a więc wszystkie siatki mają współrzędne wierzchołków i normalnych wyrażone w tym samym układzie współrzędnych. Środek podstawy robota znajduje się w punkcie (0,-1,0), wysokośd robota nie przekracza 1,5. Na ekranie powyżej oś z wychodzi z kartki, a robot zwrócony jest w ujemnym kierunku osi x. Format plików tekstowych: - W pierwszej linijce pliku tekstowego z opisem siatki znajduje się liczba różnych pozycji wierzchołków k. W każdym z k kolejnych wierszy znajdują się trzy liczby rzeczywiste współrzędne kolejnej

pozycji wierzchołka. - W następnej linijce znajduje się liczba różnych wierzchołków l. Liczba różnych wierzchołków jest z reguły większa niż liczba różnych pozycji wierzchołka, ponieważ wzdłuż ostrych krawędzi siatek spotykają się wierzchołki mające te same pozycje w przestrzeni, ale różne wektory normalne. W każdym z kolejnych l wierszy znajduje się jedna liczba całkowita indeks pozycji wierzchołka na liście pozycji wierzchołków (numeracja rozpoczyna się od zera), po której następuje trójka liczb rzeczywistych współrzędne wektora normalnego (po normalizacji). - W następnej linijce znajduje się liczba trójkątów m. Każdy z kolejnych m wierszy zawiera trzy liczby całkowite indeksy trzech wierzchołków składających się na trójkąt na liście wierzchołków (numeracja rozpoczyna się od zera). - W następnej linijce znajduje się liczba krawędzi n. n jest zawsze równe m *3/2, ponieważ siatki nie zawierają dziur i każda krawędź łączy dwa trójkąty. Lista krawędzi przyda się podczas tworzenia brył cienia. W każdym z n kolejnych wierszy znajdują się cztery liczby całkowite. Dwie pierwsze, to indeksy pozycji wierzchołków (nie mylid z indeksami wierzchołków), odpowiadających koocom danej krawędzi. Dwie kolejne to indeksy trójkątów na liście trójkątów, które zawierają daną krawędź. Numeracja w obu przypadkach rozpoczyna się od zera. Stopnie swobody robota: Na rysunku powyżej oznaczona została piątka kątów: a1,..., a5 (a1 to obrót wokół osi y, a4 wokół x, pozostałe są wokół osi z), parametryzująca daną konfigurację robota. Oznaczone zostały również równania prostych, które są osiami obrotu w pozycji wyjściowej. Należy samodzielnie napisad procedurę, która obliczy odpowiednie macierze przekształceo z układu, w którym zdefiniowane są siatki do układu sceny mając dane kąty obrotów związane z połączeniami ramion robota a1,..., a5. Rozwiązanie zadania odwrotnego: Dla danej pozycji w scenie koocówki robota i wektora normalnego wyznaczającego jej orientację, poniższy kod policzy odpowiednie parametry konfiguracji robota, korzystając z biblioteki obliczeo na macierzach i wektorach mtxlib:

void inverse_kinematics(vector3 pos, vector3 normal, float &a1, float &a2, float &a3, float &a4, float &a5) { float l1 =.91f, l2 =.81f, l3 =.33f, dy =.27f, dz =.26f; normal.normalize(); vector3 pos1 = pos + normal * l3; float e = sqrtf(pos1.z*pos1.z+pos1.x*pos1.x-dz*dz); a1 = atan2(pos1.z, -pos1.x)+atan2(dz, e); vector3 pos2(e, pos1.y-dy,.0f); a3 = -acosf(min(1.0f,(pos2.x*pos2.x+pos2.y*pos2.y-l1*l1-l2*l2) /(2.0f*l1*l2))); float k = l1 + l2 * cosf(a3), l = l2 * sinf(a3); a2 = -atan2(pos2.y,sqrtf(pos2.x*pos2.x+pos2.z*pos2.z))-atan2(l,k); } vector3 normal1; normal1 = vector3(rotateradmatrix44('y', -a1) * vector4(normal.x, normal.y, normal.z,.0f)); normal1 = vector3(rotateradmatrix44('z', -(a2+a3)) * vector4(normal1.x, normal1.y, normal1.z,.0f)); a5 = acosf(normal1.x); a4 = atan2(normal1.z, normal1.y); Koocowa animacja: W scenie należy umieścid z lewej strony robota, w odpowiedniej odległości od niego, nachylony pod pewnym kątem do płaszczyzny x=const (np. 30 stopni) prostokąt reprezentujący kawałek blachy. Niech dany będzie okrąg na powierzchni tego prostokąta. Animacja robota polega na rozwiązywaniu zadania odwrotnego dla punktu poruszającego się po okręgu i orientacji koocówki robota prostopadłej do danego prostokąta. Pozostała częśd sceny: Należy umieścid robota wewnątrz prostopadłościanu (pewne pomieszczenie) oraz dodad leżący walec z tyłu za robotem (tak, żeby na powierzchni walca widad było cieo rzucany przez robota punkt 4.).

2. Swobodna kamera o 5-ciu stopniach swobody Kamera powinna mied trzy stopnie swobody przemieszczenia i dwa stopnie swobody obrotu. Orientacja kamery powinna byd zawsze taka, żeby kierunek w bok kamery leżał w płaszczyźnie równoległej do płaszczyzny y=0 (płaszczyzna pozioma). Orientację wewnątrz programu należy przechowywad przy pomocy dwóch kątów współrzędnych sferycznych (równoleżnik i południk). Musi istnied możliwośd spojrzenia w innym kierunku poprzez zmianę któregoś z tych kątów. Kamera powinna mied blokadę obrotu w momencie, gdy jest skierowana dokładnie w górę lub dokładnie w dół. Dla danej orientacji kamery należy zapewnid interfejs przemieszczania punktu obserwatora wzdłuż każdej z trzech osi lokalnego układu kamery dla aktualnego kierunku patrzenia (kierunki w przód-tył, lewo-prawo, góra-dół kamery). 3. Oświetlenie Należy oświetlid scenę z użyciem przynajmniej jednego światła punktowego umieszczonego z lewej strony i powyżej robota. To światło będzie źródłem cienia rzucanego przez robota. 4. Bryły cienia Każda z 6-ciu części robota jest siatką bez dziur, dla której dodatkowo w plikach tekstowych podane zostały dane krawędzi. Należy użyd algorytmu brył cienia do rysowania cieni rzucanych przez robota na resztę sceny. Niech fragment tego cienia będzie widoczny na powierzchni walca leżącego za robotem. 5. System cząstek reprezentujący iskry Punkt, w którym aktualnie znajduje się koocówka robot niech będzie źródłem nowo powstających cząstek. Z każdą cząstką związane są: jej poprzednie i aktualne położenie, wiek, prędkośd. Niech kierunek i wartośd prędkości każdej nowej cząstki będą generowane losowo według dowolnego rozkładu, dla którego średni kierunek jest prostopadły do płaszczyzny blachy. Po utworzeniu, każda cząstka porusza się po paraboli pod wpływem grawitacji. W każdej klatce animacji uaktualniane są położenie, prędkośd i wiek cząstki. Cząstki, których wiek przekracza ustalony okres czasu są usuwane. Na ich miejsce generowane są nowe cząstki w punkcie koocówki robota. Na początek cząstki (iskry) można rysowad w postaci linii łączących nowe i poprzednie położenie cząstki. Cząstki powinny byd rysowane z użyciem mieszania addytywnego po narysowaniu całej reszty sceny (mieszanie addytywne w OpenGL: glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE);). Kanał alfa koloru cząstek powinien byd tak dobrany, żeby w miarę swojego wieku, stawały się one coraz mniej widoczne. Cząstki nie powinny modyfikowad bufora głębokości. Nie trzeba wykrywad kolizji cząstek z otoczeniem. Jeśli uda się już zrealizowad system cząstek reprezentujący iskry spełniający powyższe warunki proponuję ściągnąd ze strony: http://www1.cs.columbia.edu/cave/databases/rain_streak_db/rain_streak.php dowolny zestaw tekstur dla spadających kropel wody, wybrad jedną lub kilka i wykorzystad jako teksturę dla bilbordów (z kanałem przezroczystości), które zastąpią linie. Bilbord taki najlepiej rysowad podając ręcznie pozycje (i współrzędne tekstury) wierzchołków czworokąta. Dwa wierzchołki

są koocami linii, pozostałe dwa powstają przez dodanie do tych dwóch małego przesunięcia w pionie (powstaje równoległobok). Cząstki podobnie jak reszta sceny powinny się odbijad w powierzchni blachy (punkt 6.) 6. Odbicia sceny w kawałku blachy Należy renderowad odbicia sceny w powierzchni blachy. Trzeba w tym celu wykorzystad bufor szablonu i ten sam schemat postępowania, co w zadaniu z dwunastościanem foremnym. Można pominąd rysowanie cieni w odbiciu lustrzanym. Po narysowaniu odbicia należy jeszcze narysowad półprzezroczysty prostokąt blachy.