Podstawy grafiki komputerowej wykład I dr inż. Wojciech Tarnawski e-mail:wojciech.tarnawski@pwr.wroc.pl www.zssk.pwr.wroc.pl
Grafika komputerowa (na podst Grafika komputerowa (na podst. słownika informatycznego) to dział zastosowań komputerów obejmujący tworzenie i edycję przy pomocy odpowiedniego sprzętu i oprogramowania (tzw. programów graficznych) obrazów obiektów rzeczywistych i wyimaginowanych tj. rysunki, projekty architektoniczne, reklamy, prezentacje multimedialne itp.
Dwa podstawowe „nurty” grafiki komputerowej: grafika rastrowa (ang. raster graphic) - sposób opisu obrazu graficznego polegający na podziale obszaru wyświetlania na pojedyncze punkty (piksele). Każdemu pikselowi przyporządkowane jest jego położenie w obrazie oraz kolor. grafika wektorowa (ang. vector graphic) - sposób opisu obrazu oparty na formułach matematycznych. W przeciwieństwie do grafiki rastrowej (opierającej się na zapamiętywaniu koloru i położenia pojedynczych pikseli), grafika wektorowa zachowuje informacje o tworzących kształty obiektów liniach oraz krzywych - włączając ich położenie oraz barwę.
Zalety i wady obu podejść: grafika rastrowa wymaga dużych zasobów pamięciowych (kompresja) grafika rastrowa jest zależna od rozdzielczości, w przeciwieństwie do grafiki wektorowej. Wykonywanie niektórych operacji może powodować znaczne zniekształcenie obrazu. w przypadku grafiki wektorowej - większa kontrola na wyglądem i położeniem obiektów rysunku. Podczas edycji obrazka zapisanego w formacie wektorowym poszczególne obiekty można modyfikować niezależnie od pozostałych. jedną z podstawowych wad grafiki wektorowej jest to, iż tworzone w niej obrazy nie nadają się raczej do przedstawiania realnej rzeczywistości ze względu na zapewnienie niezależności sprzętowej przy wizualizacji najczęściej opis wektorowy przekształca się w obraz rastrowy (złożony z pikseli).
Plan wykładu: - Metody reprezentacji obrazów cyfrowych (obraz kolorowy, monochromatyczny, binarny, rozdzielczość obrazu, liczba poziomów kwantyzacji), formaty zapisu obrazów (BMP, JPEG, obraz indeksowany, TIFF, GIF) - Elementy grafiki 2D: rysowanie linii, okręgów, krzywych,transformacje. - Elementy grafiki 3D: rzutowanie, synteza realistycznych obrazów cyfrowych 3D za pomocą metody śledzenia promieni - Elementy grafiki rastrowej, podstawy modyfikacji obrazów cyfrowych, modyfikacja jasności i kontrastu, operacje na histogramie obrazu, filtracja liniowa i nieliniowa obrazów;
Krótka historia grafiki komp. Lata 1950-1960 – tworzenie obrazów złożonych ze znaków alfanumerycznych przy pomocy drukarek wierszowych IIIIIIIIIIIIIIIIIIIIIIIII II II II II II II II O II II IIIIII II II II
Krótka historia grafiki komp. - c.d. Lata 1955-1965 – zastosowanie lampy CRT (ang. Cathode Ray Tube) do wyświetlania obrazów wygenerowanych komputerowo ( wyświetlanie wektorowe, monitor wektorowy, grafika wektorowa).
Krótka historia grafiki komp. - c.d. Rok 1963: “Sketchpad” Ivana Sutherlanda – pierwszy system graficzny złożony z CRT i pióra świetlnego pozwalający na interakcję użytkownika. “Sketchpad” był pierwszym programem pozwalającym na tworzenie grafiki bezpośrednio na ekranie monitora, w miejsce wprowadzania kodu i procedur za pośrednictwem klawiatury. Pozwalał on także na zmianę i aktualizację informacji przechowywanej w komputerze poprzez zmiany nanoszone na wyświetlaczu. Możliwości Sketchpada otworzyły nowe horyzonty dla projektowania wspomaganego komputerowo, które pod nazwą CAD jest wykorzystywane do dnia dzisiejszego.
Krótka historia grafiki komp. - c.d. Rok 1968 – prezentacja przez firmę Tektronix wyświetlacza z możliwością przechowywania obrazu. Obraz mógł być utrzymywany na nim przez dowolny czas. Założyciele firmy opracowali sposób na precyzyjny pomiar i wyświetlanie superszybkich sygnałów elektrycznych na urządzeniu, znanym pod nazwą oscyloskopu. Koniec lat 60-tych i początek 70-tych – wyświetlacze rastrowe Skanowanie rastrowe - technika stosowana w TV wykorzystana została w latach sześćdziesiątych w monochromatycznych wyświetlaczach tekstowych dla terminali znakowych i konsolach komputerowych. Wyposażono je w niewielką ilość pamięci, wystarczającą na jeden znak, natomiast promień wodzący był włączany i wyłączany podczas przebiegu w poprzek całej szerokości ekranu. Wytwarzało to serię punktów (dokładnie tak, jak na drukarce igłowej), które mogły tworzyć kombinacje odpowiadające znakom kodowanym w systemie ASCII.
Schemat ideowy „procesu graficznego” Cel: wygenerowanie następującego obrazu
Schemat ideowy „procesu graficznego”
3D Animation
Schemat ideowy „procesu graficznego” - c.d.
Teksturowanie
Podstawowe pojęcia Rendering – proces tworzenia obrazu na ekranie z modelu lub obiektu. Obiekty – tworzone z tzw. prymitywów (punktów, linii, wielokątów) opisanych wierzchołkami. Piksel – najmniejszy widoczny element obrazu. Zapis obrazu (pikseli) jest realizowany w postaci bitmap.
Modelowanie 3D Co jest głównym celem modelowania 3D? daje możliwość syntezy obrazu poprzez utworzenie modelu zawierającego: kamerę, źródło światła, obiekty daje możliwość projektowania wyimaginowanych obiektów daje możliwość późniejszej produkcji zaprojektowanych obiektów daje możliwość symulacji oddziaływań na/z obiektami (np. badania aerodynamiczne) artystom daje możliwość realizacji ich artystycznych “wizji”
Atrybuty każdego modelu: Struktura (geometria i topologia) Wygląd ( punkt patrzenia, sposób pokrycia powierzchni obiektu, oddziaływanie ze światłem)
„Widzenie” w 3D Przy modelowaniu świata rzeczywistego używamy prostych kształtów...
...prostych, a może jednak nie zbyt prostych...
Wnioski: kształty obiektów rzeczywistych są bardzo złożone więcej szczegółów = więcej realizmu, a zatem... bardziej złożony model, większa złożoność obliczeniowa przy renderowaniu, więcej pamięci i przestrzeni dyskowej, więcej...
Formalizacja obiektów (uszczegółowienie wybranych obiektów)
Obiekty tworzone są z tzw Obiekty tworzone są z tzw. prymitywów 2D (punktów, linii, wielokątów, łuków, okręgów, krzywych,...) lub prymitywów 3D (płaszczyzn, powierzchni, ...) = elementów grafiki wektorowej Kształt jest “przejawem” (instancją) prymitywu Każda instancja danego prymitywu może być inna
Na zdefiniowanych obiektach lub w ich wybranych częściach możemy wykonywać tzw. transformacje elementarne ( przesunięcie, obrót, skalowanie)
Najczęściej wykorzystywane “zasoby” (metody i algorytmy) przy modelowaniu 3D Krzywe i powierzchnie (płaty) – modelowanie przy pomocy interpolacji lub aproksymacji algorytmy: krzywe i płaty Beziera, krzywe i płaty sklejane, zastosowanie aproksymacji wielomianowej, itd.
Idea CSG (ang. Constructive Solid Geometry - pol Idea CSG (ang. Constructive Solid Geometry - pol. Konstrukcyjna Geometria Bryłowa ) Głównym założeniem CSG jest budowanie obiektów z podstawowych, ściśle określonych brył takich jak kula, cylinder, stożek czy prostopadłościan. Obiekty te możemy ze sobą składać (otrzymując w ten sposób obiekty złożone) przy pomocy tzw. operacji boolowskich, które odpowiadają typowym działaniom na zbiorach tj.: sumie różnicy przecięciu (części wspólnej)
Suma Boolowska Różnica Boolowska Przecięcie Boolowskie (część wspólna)
Podsumowanie dot. modelowania 3D Metody modelowania modele analityczne : bezpośredni opis równaniem powierzchni lub płata, wielomianowe krzywe parametryczne, parametryczne wielomianowe płaty powierzchni, modele fraktalne modele szkieletowe (opisujące bryłę): siatka wieloboków, CSG Sposoby modelowania interaktywny wykorzystanie istniejących zasobów wykorzystanie bibliotek kształtów inne
Wybór odpowiedniego modelu Koszt (czas wykonania projektu, zasoby sprzętowe i pamięciowe, czas renderingu, czas do realizacji symulacji, łatwość animacji) Złożoność (liczba kształtów i prymitywów, złożoność każdej instancji danego kształtu ) Łatwość symulacji Łatwość animacji Efektywność (geometria, wygląd, dokładność)
Rzutowanie - rzut perspektywiczny - rzut ukośny
Modelowanie oświetlenia
Teksturowanie obiektów
Usuwanie elementów niewidocznych - sortowanie ścian - algorytm z-bufora
Czym jest rendering ? Rendering – proces tworzenia obrazu na ekranie na podstawie modelu lub obiektu. Głównym zadaniem renderingu jest zamodelowanie oddziaływania między materią a światłem.
ray-tracing = śledzenie promieni Jedna z metod renderingu - metoda śledzenia promieni (ang. ray-tracing) Metoda umożliwiająca wygenerowanie cyfrowego obrazu 3D w oparciu o symulację efektów fizyko-optycznych. ray-tracing = śledzenie promieni Symulowanie (śledzenie „trasy” ) tzw. wstecznych promieni świetlnych biegnących od oka obserwatora (kamery) do źródła światła.
Śledzenie promieni biegnących od źródła światła do oka obserwatora (kamery) jest bardzo kosztowne obliczeniowo (większość z tych promieni nie dociera do oka obserwatora)
W procesie ray-tracingu promienie są analizowane „od tyłu” - promienie wsteczne Aby utworzyć obraz trzeba zasymulować tyle promieni wychodzących z oka obserwatora, ile jest pikseli na obrazie
Zastosowania grafiki komputerowej sztuka (nas raczej nie interesuje...) rozrywka (także... :o) ) zastosowania naukowo-techniczne (o ...tak!) - wizualizacja zjawisk, procesów, oddziaływań obiektów,...