Wirtualny rzeźbiarz cz.4



Podobne dokumenty
Wirtualny rzeźbiarz cz.2

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

Zaawansowana Grafika Komputerowa

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

w jednym kwadrat ziemia powietrze równoboczny pięciobok

Tematy: zadania tematyczne

Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym.

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

Komputery I (2) Panel sterowania:

Opis postępowania przy eksportowaniu geometrii z systemu Unigraphics NX do pakietu PANUKL (ver. A)

XV Olimpiada Matematyczna Juniorów

WYMAGANIA EDUKACYJNE Z MATEMATYKI dla uczniów klasy trzeciej gimnazjum na podstawie programu MATEMATYKA 2001

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Maskowanie i selekcja

EGZAMIN MATURALNY OD ROKU SZKOLNEGO

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

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

1.2. Ostrosłupy. W tym temacie dowiesz się: jak obliczać długości odcinków zawartych w ostrosłupach, jakie są charakterystyczne kąty w ostrosłupach.

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

Rys. 1. Rozpoczynamy rysunek pojedynczej części

Matematyka. dla. Egzamin. Czas pracy będzie

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

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

EGZAMIN MATURALNY OD ROKU SZKOLNEGO

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

KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH

I semestr WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA VI. Wymagania na ocenę dopuszczającą. Dział programu: Liczby naturalne

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE III GIMNAZJUM

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

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Treści zadań Obozu Naukowego OMG

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

1. Prymitywy graficzne

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

Obsługa programu Soldis

Kopiowanie, przenoszenie plików i folderów

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Plan wynikowy do programu MATEMATYKA 2001 klasa 3 gimnazjum

TWORZENIE SZEŚCIANU. Sześcian to trójwymiarowa bryła, w której każdy z sześciu boków jest kwadratem. Sześcian

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

NOWOŚCI W CABRI 3D v2.

Przykładowe plany zajęć lekcyjnych Design the Future Poland

Temat: Konstrukcja prostej przechodzącej przez punkt A i prostopadłej do danej prostej k.

Podstawy 3D Studio MAX

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

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

LUBELSKA PRÓBA PRZED MATURĄ 09 MARCA Kartoteka testu. Maksymalna liczba punktów. Nr zad. Matematyka dla klasy 3 poziom podstawowy

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

9. Podstawowe narzędzia matematyczne analiz przestrzennych

Pokażę w jaki sposób można zrobić prostą grafikę programem GIMP. 1. Uruchom aplikację GIMP klikając w ikonę na pulpicie.

Skorzystaj z Worda i stwórz profesjonalnie wyglądające dokumenty.

ARKUSZ VIII

LI Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 3 kwietnia 2000 r. (pierwszy dzień zawodów)

1 Wstęp teoretyczny. Temat: Obcinanie odcinków do prostokąta. Grafika komputerowa 2D. Instrukcja laboratoryjna Prostokąt obcinający

ARKUSZ PRÓBNEJ MATURY Z OPERONEM MATEMATYKA

Animacje z zastosowaniem suwaka i przycisku

WYMAGANIA EDUKACYJNE Rok szkolny 2018/2019

Plan wynikowy do programu MATEMATYKA 2001 klasa 3 gimnazjum

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

Osiągnięcia ponadprzedmiotowe

Grafika 2D. Animacja Zmiany Kształtu. opracowanie: Jacek Kęsik

CIĘCIE POJEDYNCZE MARMUR

Edytor tekstu MS Word podstawy

Wymagania edukacyjne z matematyki - klasa III (poziom rozszerzony) wg programu nauczania Matematyka Prosto do matury

PDM 3 zakres podstawowy i rozszerzony PSO

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

Zadania do samodzielnego rozwiązania zestaw 11

Podstawowe pojęcia geometryczne

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

Ustalanie dostępu do plików - Windows XP Home/Professional

TUTORIAL: Konwersja importowanej geometrii na arkusz blachy

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Strona 1 z 9. prowadzić rozumowania matematyczne sprawnie posługiwać się językiem matematycznym

Czy pamiętasz? Zadanie 1. Rozpoznaj wśród poniższych brył ostrosłupy i graniastosłupy.

KRYTERIA OCENIANIA W KLASACH SZÓSTYCH - Matematyka

ZADANIA MATURALNE - ANALIZA MATEMATYCZNA - POZIOM ROZSZERZONY Opracowała - mgr Danuta Brzezińska. 2 3x. 2. Sformułuj odpowiedź.

Obiekty trójwymiarowe AutoCAD 2013 PL

Rysowanie precyzyjne. Polecenie:

Osiągnięcia ponadprzedmiotowe. Osiągnięcia przedmiotowe

Ćwiczenie nr 9 - Tworzenie brył

Dodawanie grafiki i obiektów

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

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

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

EGZAMIN MATURALNY Z MATEMATYKI

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

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Rozwiązania zadań. Arkusz maturalny z matematyki nr 1 POZIOM PODSTAWOWY

Graniastosłupy mają dwie podstawy, a ich ściany boczne mają kształt prostokątów.

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych

DZIAŁ 1. STATYSTYKA DZIAŁ 2. FUNKCJE

Edytor tekstu MS Word 2010 PL: grafika. Edytor tekstu MS Word umożliwia wstawianie do dokumentów grafiki.

Agnieszka Kamińska, Dorota Ponczek. Matematyka na czasie Gimnazjum, klasa 3 Rozkład materiału i plan wynikowy

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

Transkrypt:

Andrzej Fałkowski 119315 Dawid Kwiatkowski 119374 Paweł Pieniążek 119423 Wirtualny rzeźbiarz cz.4 Projekt realizowany w ramach przedmiotu Rzeczywistość Wirtualna Założenia ogólne Projekt polegał na stworzeniu aplikacji, umożliwiającej tworzenie rzeźb z wykorzystaniem ramienia pomiarowego urządzenia MicroScribe i eksport ich do formatu FBX. Ruchy końcówką wskaźnika są odwzorowane jako ruch narzędzia w wirtualnym świecie i powodują rzeźbienie. Użytkownik będzie miał do wyboru kilka narzędzi rzeźbiarskich (dłuta, noże i inne). W pracy wykorzystane zostały trzy sprzęty rzeczywistości wirtualnej: MicroScribe do rzeźbienia oraz CyberStick2 i SpaceNavigator jako dwa alternatywne źródła nawigacji. Program został napisany w C# z wykorzystaniem technologii Microsoft XNA, oraz Windows Forms. Współpraca z urządzeniami rzeczywistosci wirtualnej MicroScribe - współpraca z urządzeniem MicroScribe okazała się problematyczna. Do komunikacji z komputerem wymagany był port COM, niedostępny na większości dostępnych komputerów laboratoryjnych, w związku z czym konieczne okazało się korzystanie z przejściówki na port USB (niedostępnej w zestawie). Problematyczna okazała się także instalacja sterowników urządzenia - na co najmniej jednym urządzeniu okazało się to niemożliwe. Samo operowanie z urządzenia ocenić można jako wysoce nieintuicyjne, ograniczenia ruchu w poszczególnych osiach obrotu ramienia uniemożliwiało częstokroć odwzorowanie pożądanej pozycji narzędzia w programie. Brak jakiegolwiek sprzężenia zwrotnego zapobiegał uzyskaniu wrażenia rzeźbienia w rzeczywistości wirtualnej. Jedyną zaletą urządzenia było stosunkowo bezoporowe operowanie wskaźnikiem. Mieszanie należy ocenić przeniesienie części interaktywnej wskaźnika na zewnętrzne pedały operowane nogą - z jednej strony pozwalało to na jednoczesne korzystanie z drugiego manipulatora, z drugiej - z punktu widzenia użytkownika bardziej efektywne byłoby przeniesienie przycisków na końcówkę wskaźnika MicroScribe pozwalająca na obsługę całego urządzenia za pomocą zaledwie jednej kończyny. CyberStick2 - komunikacja z urządzeniem przy pomocy DirectInput, wykorzystanie biblioteki SlimDX - DirectX dla C#. Urządzenie jest rozkalibrowane SpaceNavigator (urządzenie prywatne) - alternatywne źródło nawigacji w przestrzeni (6 możliwości ruchu - 3 osie obrotu i 3 przesuwania), stabilne, wygodne w użyciu.

Interfejs Opcje podstawowe klawiatura - skróty klawiszowe, wpisywanie wymiarów, nazw plików itp. mysz - wybieranie opcji (zapisywanie, wczytywanie obiektów, oraz cofanie i powtarzanie edycji), dobieranie parametrów suwakami (kąt nachylenia, ostrosłupa imitującego dłuto) Sterowanie kamerą (nawigacja w świecie 3D): joystick - obrót w 2 osiach, plus w trzeciej na przycisk, przesuwanie grzybkiem, plus przyciskami zoom manipulator - przesuwanie i obrót, każde w 3 osiach klawiatura - jw. Rzeźbienie (modelowanie): ramię pomiarowe - z urządzenia można odczytać pozycję czubka rysika, oraz wektor jednostkowy opisujący kierunek wskazywany przez rysik. mysz - rzeźbienie z perspektywy kamery. Wykorzystanie pozycji kamery do określenia pozycji narzędzia, jego kierunek wyznaczany jest na podstawie pozycji kamery oraz pozycji myszy Podstawowa funkcjonalność Narzędzia rzeźbiarskie: nóż (laser) - generuje idealnie proste cięcia, każdy ruch odcina fragment rzeźby, jeśli ruch nie spowodował odcięcia, to jest anulowany (nie da się wykroić sześciennego kształtu w sześcianie. kliknięcie i przytrzymanie LPM - aproksymacja punktów przegięcia cięcia w miejscach, znaczącej zmiany kierunku - kolejne płaszczyzny cięcia, aktualnie płaszczyzny cięcia powstają co każde 20 pomiarów, niezależnie od kierunku. dłuto o modyfikowalnej wielkości i mocy, polega na stworzeniu obiektu będącego różnicą obiektu oryginalnego i ostrosłupa imitującego dłuto. Dodatkowo funkcjonalności: możliwość cofania edycji (ogromnie istotna funkcja odróżniająca rzeźbiarza wirtualnego od prawdziwego) wszystkie modyfikacje trójkątów zapamiętywane jako usunięcie lub dodanie tablica przechowująca zmiany podczas edycji, umożliwiająca cofanie wykonanych cięć oraz powtarzanie ich wierzchołki nie są zapamiętywane, gdyż nie da się ich łatwo usuwać, ze względu na to, że trójkąty posiadają tylko indeksy wierzchołków zapis i odczyt pliku - format FBX, styl ASCII. Statystyka ilości wierzchołków, trójkątów oraz wielokątów rzeźby Rysowanie linii tnącej podczas cięć. Wykorzystanie ruchów nawigacyjnych do generowania rzeźbienia - rysik trzymany nieruchomo połączony z obrotem rzeźby w świecie również powoduje wycinanie

Problemy geometryczno-matematyczne i ich rozwiązania Tekstura wolumetryczna 3D - szum Perlina Kolor piksela zależny jest od jego pozycji w świecie 3D. Shader posiada funkcje, która na podstawie pozycji i wcześniej wygenerowanej tablicy z szumem, określa jego kolor. sin(x + sum(1 / f( noise ))) Dzięki temu uzyskujemy imitację marmuru opisaną wzorem matematycznym. Ta wygenerowana tablica 256 liczb od 0-256 pozwala na zachowanie tej samej struktury marmuru przez cały etap rzeźbienia. Problem dokładności Podczas cięcia należy znaleźć wszystkie trójkąty, które przecina płaszczyzna, potem wyznaczyć punkt przecięcia i wygenerować tam wierzchołki. Od razu tworzone są odpowiednie trójkąty (stary trójkąt dzielony jest na 3 nowe trójkąty): problem, który występuje w szczególnych przypadkach, czyli gdy cięcie przechodzi przez wierzchołek lub przez krawędź (praktycznie nieosiągalny ze względu na operowanie w dziedzinie liczb rzeczywistych), trójkąt początkowy jest wtedy dzielony na mniej trójkątów.

Dodatkowo zapisywane są miejsca przecięć dla danej krawędzi w celu uniknięcia problemów z dokładnością - punkt przecięcia P1 odcinka AB z płaszczyzną X, oraz punkt P2, jako punkt przecięcia odcinka BA z płaszczyzną X, mogą nieznacznie się różnić ze względu na niedokładność doubla 1 / 3 * 2 = 0.666 2 * 1 / 3 = 0.667 problemu nadmiarowych wierzchołków - dzielenie 2 sąsiadujących trójkątów generowałoby 2 punkty zamiast 1. Tworzenie nowych wielokątów Po przecięciu bryły należy stworzyć wielokąt, lub wielokąty na płaszczyźnie cięcia. wersja 1 - sortowanie wierzchołków w przestrzeni - wyznaczenie punktu centralnego, oraz kątów dla wierzchołków, wykorzystując ustalony wektor. Wszystko to odbywa się na płaszczyźnie cięcia - nie ma możliwości stworzenia dwóch wielokątów na wspólnej płaszczyźnie! wersja 2 - zapisywanie krawędzi dzielących trójkąt podczas cięcia i z nich tworzenie list krawędziowych (łamanych), które definiują wielokąty - w tej wersji nie występuje problem wielu wielokątów, ponieważ może powstać kilka list krawędziowych dodatkowo - należy sprawdzać, czy lista krawędziowa nie znajduje się przestrzennie wewnątrz innej listy, bo wtedy może być to wielokąt z dziurą. powstaje problem gdy wielokąt jest z dziurą, ale ta dziura ma wyspę

Samo tworzenie wielokąta na podstawie listy krawędziowej nie jest proste. Dla wielokątów wypukłych można dodać punkt centralny wielokąta i każdą krawędź łączyć z tym punktem tworząc trójkąt, jednak problem pojawia się przy wielokątach wklęsłych. wielokąty wklęsłe sprawdzanie kierunku skrętności trójkąta, ale istotne jest miejsce od którego się zacznie, trzeba zacząć od najmniejszych trójkątów, żeby rozwiązać ten problem został wykorzystany algorytm obcinania uszu (Ear-Clipping) Przechowywanie bryły w pamięci Najprościej przechowywać trójkąty i wierzchołki. Każdy trójkąt to 3 indeksy na tablicę wierzchołków. Powoduje to pewien problem, z każdym cięciem tworzy się coraz więcej trójkątów. Rozwiązaniem optymalizacyjnym jest reprezentacja bryły jako wielokąty (zaznaczenie krawędzi, które nie powodują zgięć (sąsiadujące trójkąty są na jednej płaszczyźnie) - przy cięciu nie generują nowych wierzchołków)

Zostało to rozwiązane w sposób następujący: cięcie przez krawędź niewidoczną (czyli tą wewnątrz wielokąta), powoduje stworzenie wirtualnego wierzchołka o numerze (-X), który używany jest podczas łączenia krawędzi w etapie tworzenia wielokąta, ale nie generuje on nowych wierzchołków. Dodatkowo oprócz krawędzi niewidocznych, przechowywana jest też informacja o tym do którego wielokąta należy trójkąt. Zapis do formatu FBX Jest to bardzo zaawansowany format danych, którzy może przechować bardzo wiele informacji o obiekcie 3D. Wspiera on kości, tekstury, animacje, oświetlenie i wiele innych. W ramach projektu większość z tych rzeczy jest niepotrzebna, nie było więc konieczności tworzenia generatora kompletnych plików FBX. Rozwiązane to zostało w prosty sposób. Na początku został stworzony najprostszy możliwy plik FBX w programie graficznym. Na scenę był wstawiony sześcian. Następnie został napisany parser, który umiał poruszać się po drzewiastej strukturze pliku i znajdował miejsca zapisu wierzchołków i trójkątów. W tym momencie działa już odczyt. Zapis polegał na podmianie danego fragmentu na nowy z bieżącymi danymi wierzchołków i trójkątów. Otworzyć można dowolny plik FBX. Zapis następuje do pliku sculpture.fbx w folderze z programem. Rzeźbienie dłutem z wykorzystaniem techniki śledzenia promieni Rzeźbienie czyli symulowanie uderzeń dłuta, w rzeźbę, polega na wycięciu w bryle kształtu ostrosłupa (piramidki) o pozycji i kierunku zadanym przez użytkownika. Istnieje możliwość określenia kąta ostrości ostrosłupa.

Zasada działania - od punktu w nieskończoności do czubka dłuta, wzdłuż każdej krawędzi ostrosłupa rzeźbiącego rozchodzą się promienie. Znajdowane są trójkąty które przecinają daną półprostą, sortowane są po odległości od wierzchołka dłuta i tworzone są krawędzie pomiędzy kolejnymi wierzchołkami stworzonymi w punktach przecięcia. 1 i 2, 3 i 4, te krawędzie są później wykorzystane do stworzenia wielokątów głównych, generowanych przez rzeźbienie (wielokąty które są na płaszczyźnie trójkątów ostrosłupa). Tworzenie wielokątów na podstawie krawędzi zostało juz opisane wcześniej. korzystamy tu z faktu, że w dalekim oddaleniu, na pewno promień będzie poza bryłą, każde nieparzyste przejście przez bryłę rozpoczyna krawędź, a parzyste ją kończy. Jeśli czubek ostrosłupa był parzysty, to na nim kończy się ostatnia krawędź. W przeciwnym wypadku wiadomo, że czubek był poza bryłą. Technika promieniowa działa również, gdy uderzenia przechodzą na wylot rzeźby: Możliwości rozwoju Opcje dodatkowe: okienko do wpisywania z klawiatury wymiarów początkowej bryły możliwość wybierania różnych brył początkowych o zadanych wymiarach: kuli, ostrosłupa, itp. Zapis: zapisywane są tylko informacje o wierzchołkach i trójkątach, tracona jest informacja o wielokątach (trójkątach będących na jednakowej płaszczyźnie)

Cięcie: prawdziwa aproksymacja punktów przegięcia cięcia w miejscach, znaczącej zmiany kierunku, a nie na sztywno co 20 pomiarów cięcie o ograniczonym zasięgu równanie znajdujące krawędzie przecinające się z płaszczyzną zostaje uzupełnione o dodatkową nierówność informującą o zakresie umożliwienie wycinania brył wypukłych (problem opisany wcześniej) dodanie dodatkowych wierzchołków w miejscach krańcowych płaszczyzn ograniczonych zakresem (dodanie również trójkątów) jeśli udałoby się rozwiązać poprzedni problem cięcia o ograniczonym zasięgu, to możnaby go tutaj wykorzystać

robiąc cięcie, można by tworzyć odwrotny ostrosłup, co umożliwiałoby wycinanie fragmentów. Wierzchołek ostrosłupa znajdowałby się w miejscu kamery - rozwiązanie nadaje się tylko, gdy kamera się nie porusza, a sterowanie odbywa się przy pomocy myszy Rzeźbienie: Różne kształty dłuta (ostrosłup o podstawie dowolnego wielokąta, możliwość definiowania własnych) Inne kształty, nie bazujące na ostrosłupie, np. namiot, jako imitacja dłuta płaskiego Anty-rzeźbienie: zasada podobna, tyle że zamiast wycinać kształt piramidy, można doklejać taki kształt Szlifowanie wyznaczenie wierzchołka, który będzie poddawany obróbce nowa pozycja wierzchołka, będzie obliczana na podstawie uśrednionej pozycji sąsiadów Efekty działania programu - przykładowe rzeźby