Grafika komputerowa, będąca dziedziną informatyki, zyskała niezwykłą popularność w codziennym życiu. Jej twory możemy spotkać niemalże wszędzie: od drobnych ogłoszeń na ścianach, po imponujące bannery zdobiące wieżowce. Jednakże grafika komputerowa nie ogranicza się wyłącznie do branży reklamowej.
Znajduje zastosowanie w licznych sektorach przemysłowych, takich jak produkcja gier komputerowych, tworzenie animacji czy filmy z efektami specjalnymi. Wykorzystywana jest także w symulacjach fizycznych, projektowaniu CAD, a także w przemyśle wojskowym, na przykład do prezentowania danych radarowych na monitorach.
Co to jest grafika komputerowa? To dziedzina informatyki skupiająca się na szeroko rozumianej obróbce obrazu. Może dotyczyć artystycznej wizualizacji lub precyzyjnego odwzorowania rzeczywistości w formie komputerowej.
Rozwój grafiki komputerowej nierozerwalnie wiąże się z postępem technologii komputerowych. Wzrost wydajności sprzętu umożliwił obecnie tworzenie zaawansowanej grafiki 3D na domowych komputerach. W latach 70. i 80. tworzenie animacji wymagało dostępu do zaawansowanych zasobów i superkomputerów. Dlatego warto przybliżyć ewolucję tej dziedziny przez lata.
Historia grafiki komputerowej
1950+: Początki grafiki komputerowej
Pierwotnie komputery korzystały z druku jako głównego środka prezentacji danych, co nie pozwalało na bezpośredni podgląd graficzny. Mimo że możliwe było tworzenie prostych rysunków i diagramów, metoda ta miała wiele ograniczeń. Kluczowy moment dla grafiki komputerowej nastąpił wraz z postępem w dziedzinie elektroniki. Wprowadzenie kineskopów (ekranów CRT) umożliwiło interaktywną manipulację grafiką. Postrzega się, że narodziny komputera Whirlwind z ekranem CRT w 1951 roku zapoczątkowały erę grafiki komputerowej.
Wielki rozwój grafiki komputerowej był ściśle związany z potrzebami wojska, szczególnie w kontekście technologii radarowej i lotniczej. Informacje zbierane z różnych radarów musiały być prezentowane w przejrzysty i zrozumiały sposób na ekranach monitorów. Tym samym przyspieszyło to rozwój grafiki. W odpowiedzi na te potrzeby powstał SAGE – system monitorowania powietrznego dla sił zbrojnych Stanów Zjednoczonych.
Sage wykorzystywał komputery na podstawie Whirlwind (AN/FSQ-7). Komputer przetwarzał informacje otrzymane z urządzeń radarowych na monitor CRT, a pióro świetlne umieszczone w zestawie pozwalało wybrać odpowiedni obiekt na ekranie, aby uzyskać o nim więcej informacji.
SAGE nie tylko rozwinął wykorzystanie grafiki komputerowej. Była to również pierwsza sieć komputerowa, która przez sieć telefoniczną i setki radarów w USA i Kanadzie monitorowała przestrzeń powietrzną.
W 1951 zaczęto również badać możliwość wykorzystania komputerów w projektowaniu CAD. System IBM 740/780 w połączeniu z komputerem IBM 704 mógł wyświetlać punkty, linie na ekranie CRT. System wprowadzono w 1964 roku jako DAC-1 (ang. Digital Design). System pozwalał na zdigitalizowanie rysunków.
W 1958 roku stworzoną pierwszą grę komputerową Tennis for Two, która wykorzystywała ekran oscyloskopu do rozgrywki.
W 1959 Douglas T. Ross przekształcił twierdzenia matematyczne w generowane komputerowo wektory 3D obrabiarki, co pozwoliło wyświetlać podgląd części. Został też wyprodukowany komputer TX-2, który integrował wiele interfejsów pomiędzy danymi binarnymi a wyświetlaniem ich na ekranie.
Pojawił się też komputer PDP-1 z wyświetlaczem CRT, na który została stworzona gra Space War. PDP-1 w chwili wydania kosztował $120 000 dolarów. Uwzględniając inflacje jego cena w 2021 roku, wyniosłaby 1 milion dolarów!
1960+ Rozwój sprzętu komputerowego — pierwszy komputer graficzny
W latach 60 nastąpił gwałtowny rozwój informatyki, zapoczątkowała to firma Hewlett Packard, która wiodła w tym okresie prym w świecie technologii komputerowej. Obszar, na którym rozpoczęła się ta rewolucja, dziś jest nazywany Doliną Krzemową.
Rozwój grafiki komputerowej wiązał się z wizualizacją danych na ekranie komputerów. Naukowcy w ten sposób ilustrowali swoje badania. Przełom w grafice komputerowej nastąpił z implementacją krzywych Beziera, które były wykorzystywane do opracowywania i modelowania karoserii samochodów firmy Renault. System ten nazywał się UNISURF.
Krzywe są matematycznymi jednostkami, dzięki czemu można je dobrze wyświetlać i modelować na ekranie. To rozwiązanie zainteresowało duże firmy z przemysłu wojskowego m.in. Lockheed, General Electric i TRW, które chciały wykorzystać grafikę komputerową w projektowaniu.
Wzrost zainteresowania firm spowodowało, że IBM wyprodukował komputer IBM 2250. Był to pierwszy komercyjnie dostępny terminal graficzny. Zawierał on również grę wideo, która pozwalała na przesuwanie punktów świetlnych na ekranie.
Evans & Sutherland to pierwsza firma produkująca sprzęt do grafiki komputerowej. Została zarejestrowana w 1968 roku. Zajmowała się głównie obsługa firm wojskowych i powiązanych z armią. Ze wdrażaniem nowego sprzętu komputerowego, grafika rozpoczęła prawdziwą ekspansję. W 1969 roku powstała pierwsza grupa SIGGRAPH, która organizowała konferencje, publikacje i standardy grafiki komputerowej.
W latach 70 nastąpił ogromny rozwój hardware. Powstał pierwszy mikroprocesor oraz pamięć MOS i DRAM. Pamięć pozwoliła na przechowywanie obrazu w standardowe rozdzielczości w buforze ramki.
Umożliwiło to stworzenie pierwszego oprogramowania graficznego połączonego z systemem komputerowym o nazwie SuperPaint. Program korzystał z graficznego interfejsu użytkownika (GUI) i posiadał funkcje zmianę barwy, nasycenia, wypełnienia obrazu. Komputer udostępniał wejście wideo. Pozwoliło to przechwytywać obraz i łączyć go z danymi cyfrowymi.
1970+ Pierwsze animacje
Pierwsza animacja komputerowa prezentowała otwieranie i zamykania dłoni. Została stworzona przez Edwina Catmulla w latach 70 na uniwersytecie UTAH w laboratorium grafiki komputerowej.
Catmull był pionierem podstawowych technik modelowania 3D, jego celem było wyprodukowanie pełnometrażowego filmu przy użyciu grafiki komputerowej. Edwin Catmull to założyciel studia Pixar, które w 1995 stworzyło pierwszy w pełni animowany komputerowo film Toy Story.
Laboratorium grafiki komputerowej na uniwersytecie UTAH wykorzystywane było przez wiele interesujących osób m.in. przez twórcę firmy Adobe Systems, Johna Warnocka. Firma Adobe stworzyła m.in. znany dzisiaj na całym świecie program Adobe Photoshop czy format dokumentów cyfrowych PDF.
Animacje komputerowe zostały wykorzystane po raz pierwszy w filmie FutureWorld w 1976 roku. Film prezentuje pierwszą animację komputerową zamykania i otwierania dłoni oraz twarz wyrenderowano komputerowo, która wykorzystano w kinematografii.
Kolejnym elementem przyczyniającym się do rozwoju grafiki komputerowej były gry Arcade, które wykorzystywały elementy grafiki 2D zwane spirtami. Spirty to dwuwymiarowa mapa bitowa reprezentująca np. postać bohatera. Na rynku pojawiły się gry takie jak Pong, Speed Race, czy Space Invaders, która zawierała wiele grafik postaci.
1980+ Komputery osobiste i komercjalizacja grafiki komputerowej
W 1980 roku na rynku pojawiły się pierwsze komputery domowe m.in. IBM PC, Apple III. Wprowadzono wiele technologii czy procesorów. Wydano 16-bitowy CPU Motorola 68000 oraz pierwszą dedykowaną kartą graficzną (GPU) NEC µPD7220, nastąpił gwałtowny rozwój pamięci. Umożliwiło to zwiększenie rozdzielczości wyświetlanego obrazu, liczby wyświetlanych kolorów oraz tworzenie bardziej zaawansowanych grafik komputerowych.
Pojawiły się specjalne stacje robocze dla inżynierii przemysłowych. Użytkownicy domowi natomiast wykorzystywali komputery osobiste Commodore Amiga i Macintosh jako narzędzia projektowe.
W Japonii skonstruowano komputer LINKS-1, który umożliwiał wyrenderowanie wysoce realistycznego obrazu. LINKS-1 był najpotężniejszym komputerem w 1984 roku i wykorzystano go stworzenia animacji planetarium całego nieba.
Rozwój grafiki komputerowej wiązał się kinematografią. Wielkim sukcesem było wykorzystanie grafiki komputerowej (CGI) w serii Gwiezdnych Wojen. Producenci filmowi zauważyli, że wykorzystanie animacji może przyciągnąć większą liczbę widzów do kin.
Przykład animacji komputerowej z filmu TRON (1982).
Pierwszy teledysk wykorzystujący CGI pochodzi z roku 1985. Dire Straits — Money For Nothing.
W filmie fabularnym Młody Sherlock Holmes (1985 rok) wykorzystano wielokątną, przezroczystą postać rycerza wtopioną w tło filmu.
1980+ to również złota era gier komputerowych, która szczególnie przyciągnęła młodych ludzi do zabawy grafiką komputerową. W tej dekadzie stworzono takie hity jak Prince of Persia (1989), Donkey Kong (1981) czy Super Mario (1985).
Wprowadzono komputery IBM PC z system MS-DOS oraz Apple II z systemem Apple DOS. Pojawiły się również pierwsze profesjonalne aplikacje, które znane są do dzisiaj m.in. Adobe Photoshop, Illustrator czy CorelDraw.
1990+ Masowy wzrost jakości CGI i wydajności
W latach 90 komputery domowe mogły wykonywać zadania związane z renderingiem i modelowaniem 3D, we wcześniejszych latach było to ograniczone tylko do kosztownych stacji roboczych. Spowodowało to lawinowy wzrost popularności grafiki komputerowej.
Wprowadzenie komputerów pracujących na systemie Windows 95 i 98 oraz udostępnienie programów do grafiki 3D m.in. firmy Autodesk, jak 3DS Studio Max (1996) i Autodesk Maya (1998) przeniosły tworzenie animacji i grafiki 3D na wyższy poziom.
Powstały też pierwsze darmowe programy do tworzenia grafiki 3D. Blender (1994) oraz Anim8or (1999).
Pierwsze wyrenderowane grafiki mogły uchodzić za fotorealistyczne. Zaczęły powstawać seriale i filmy oparte na grafice komputerowej. Szczególnie wspomniany już w artykule film animowany Toy Story, który powstał komputerowo! Toy Story odniosło ogromny sukces finansowy i wywarł ogromny wpływ na branżę filmową, dzięki swojej innowacyjnej animacji komputerowej!
Zaczęły również powstawać gry komputerowe na podstawie wielokątnej grafiki 3D – m.in. Wolfenstein 3D, Doom, Quake, Virtua Fighter i Tekken.
Na zakończenie lat 90, pojawiła się pierwsza, przełomowa karta graficzna GeForce 256 na komputery osobiste, co zwiększyło popularność i łatwość tworzenia grafiki 3D. Wprowadzono rozwiązania przetwarzania grafiki DirectX i OpenGL, które są znane graczom na całym świecie.
Biblioteki DirectX są wymagane przez gry komputerowe, by mogły zostać poprawnie uruchomione w systemie Windows.
W 1999 roku wyprodukowano film „Matrix”, w którym wykorzystano bardzo dużo efektów specjalnych m.in. kultowy bullet-time oraz użycie cyfrowego komponowania obrazu w połączeniu z green screenem.
2000+ Animacje i gry komputerowe
CGI zaczęto masowo wykorzystywać w grach komputerowych szczególnie animacjach wejściowych i przerywnikach (ang. cutscene). Dodatkowo pojawiły się w reklamach telewizyjnych. Rozwój elektroniki, szczególnie wprowadzenie nowych procesorów graficznych umożliwiało coraz efektywniejsze projektowanie grafiki komputerowej.
To, co w latach 80 mogły wykonać tylko dedykowane i kosztowne komputery do tworzenia animacji, teraz mogły być wykonywane na komputerach domowych. Grafika staje się również coraz bardziej realistyczna. Efekty cyfrowe, CGI zaczęto wykorzystywać w kinematografii na masową skalę.
W 2001 roku wyprodukowano pierwszy w pełni film fabularny wygenerowany komputerowo Final Fantasy The Spirits Within.
Podczas jego tworzenia wykorzystano ogromną liczbę komputerów oraz technologię motion-capture. Film kosztował ogromne pieniądze, budżet wyniósł 137 miliony dolarów. Animacja nie przyniosła jednak sukcesu komercyjnego, a przychód $87 mln z biletów nie pokrył kosztów produkcji.
W międzyczasie następuje dalszy rozwój gier komputerowych, których grafika z każdym rokiem znacząco się poprawiała, sama biblioteka DirectX została udostępniona przez firmę Microsoft dla programistów tworzących gry komputerowe.
Karty graficzne, które zostały stworzone w celu odciążenia procesorów CPU przy generowaniu grafiki komputerowej. Zaczęły być wykorzystywane w obliczeniach naukowych szczególnie w bioinformatyce i biologii molekularnej, również obliczenia matematyczne generowane przez karty graficzne wykorzystywane są w wydobywaniu kryptowaluty Bitcoin.
2010+ Fotorealizm i dolina niesamowitości.
Rozwój grafiki i coraz bliższy fotorealizmu animacji spowodował, że twórcy zaczęli obawiać się pojęcia „doliny niesamowitości”. Pojęcie to definiuje się jako odrazę i niechęć do czegoś, co staje się bardzo podobne do człowieka. Rocznie powstaje duża liczba animowanych filmów, jednak specjaliści nie starają się tworzyć perfekcyjnego fotorealizmu swoich produkcji. Boją się odrzucenia i porażki finansowej spowodowanej właśnie odczuciem doliny niesamowitości.
Dekada przyniosła również dalszy rozwój innowacji. W 2013 roku podczas produkcji filmu Fast and Furious 7 jeden z aktorów zginął w wypadku samochodowym. Producenci filmu i reżyser musieli dokończyć film i nagrać brakujące sceny z aktorem. Wynajęli firmę zajmująca się grafiką komputerową, która wygenerowała komputerowo twarz aktora. Umieszczono ją w 260 ujęciach, co pozwoliło dokończyć film.
Wielu aktorów zaczyna zeskanowywać swoje wizerunki do formy cyfrowej, tak by wykorzystać je w grach wideo lub filmach. Możliwe, że za kilkanaście lat aktor nie będzie grał w filmie, tylko udostępni swój wizerunek, który zostanie wdrożony poprzez CGI w film.
Takie działania były również podejmowane wcześniej, komputerowo wskrzeszono Bruce Lee, czy Audrey Hepburn by wykorzystać ich wizerunek w reklamach produktów. Grafika komputerowa również pozwoliła na dokończenie filmów jak Gladiator (aktor Oliver Reed) czy Iron Cross (aktor Roy Scheider).
Podział grafiki komputerowej.
Grafikę komputerową dzieli się na trzy rodzaje grafiki, według zasady ich działania.
Grafika trójwymiarowa 3D
Grafika trójwymiarowa wykorzystywana jest w grach, filmach i animacjach. Tworzy się ją w trójwymiarowej przestrzeni X, Y, Z. Grafika 3D może być reprezentowana na kilka sposobów m.in. poprzez wielokąty (trójkąty, czworokąty), woksele (sześciany) i opisy matematyczne (nurbs, bezier).
Tak stworzony obraz można dowolnie obrócić oraz zmienić położenie kamery. Następnie należy scenę wygenerować do grafiki 2D. Generowanie grafiki 3D do 2D nazywane jest procesem renderingu.
Popularne rozszerzenia plików 3D: OBJ, FBX, 3DS, PLY, STL, .BLEND, .3DS, .MAX.
Grafika wektorowa
Grafika wektorowa to grafika opierająca się na obliczeniach matematycznych. Plik zawiera ciąg znaków matematycznych, które następnie są przetwarzane przez komputer w celu ich wyświetlenia na monitorze.
Zmniejszenie czy zwiększenie grafiki wektorowej nie powoduje straty jakości obrazu. Obrazy tego typu wykorzystuje się przy projektowaniu logotypów, ikon czy animacji Flash.
Popularne formaty grafiki wektorowej: .SVG, .AI, .EPS
Przeczytaj więcej na temat grafiki wektorowej.
Grafika rastrowa
Grafika rastrowa to grafika oparta na bitmapie pikselowej. Każdy piksel jest reprezentowany przez model RGB lub CMYK, który określa ich kolor, przykładowo rozdzielczość full HD składa się z 1920 pikseli na 1080, czyli 1 klatka filmu Full HD zawiera 2,073,600 pikseli.
Niektóre formaty graficzne m.in. PNG posiadają dodatkowy kanał alpha, który służy do określenia przezroczystości obrazu. Grafika rastrowa może być kompresowana do grafiki stratnej, lub bezstratnej.
Grafiki rastrowej nie można skalować dowolnie, zmniejszenie grafiki powoduje zmniejszenie liczby pikseli, zwiększenie natomiast ich powielenie, komputer automatycznie dokonuje skalowania takiego obrazu, jednak przy dużych różnicach, występuje pojęcie pikselozy 🙂
Popularne formaty grafiki rastrowej: .JPEG, .JPG, .PNG, .WEBP, .GIF, .BMP
Przeczytaj więcej na temat grafiki rastrowej.
Grafika dwuwymiarowa
Grafika 2D posiada tylko dwie przestrzenie x, y i dzieli się na grafikę rastrową (zdjęcia cyfrowe oparte na bitmapie pikselowej) i wektorową (modele geometryczne). Dwuwymiarowe grafiki można zaimportować do programów 3D, które pozwalają na ich „przekształcenie” w grafiki 3D.
Grafika 2D nie posiada tak pokaźnych funkcji jak grafiką trójwymiarową. Nie jest możliwe automatyczne obliczenie padania i odbicia światła od innych powierzchni czy obiektów, cieniowania. Jednak za pomocą warstw (ang. layers) jest możliwe dodanie do zaznaczonej warstwy np. cienia (ang. drop shadow).
Grafikę dwuwymiarową wykorzystuje się w rysowaniu oraz w tradycyjnych technologiach wydruku. Najczęściej wykorzystywana w urządzeniach peryferyjnych (drukarkach, ploterach) oraz filmach animowanych. Istnieje wiele programów, które ułatwiają pracę dla animatora m.in. Adobe After Effects czy Adobe Flash.
Graficy komputerowi mogą stworzyć model 3D, który następnie odpowiednio dopasować za pomocą „kamery” w przestrzeni x, y, z. Następnie renderują go do odpowiedniej grafiki 2D. Pozwala to na zwiększenie jakości zdjęcia, ponieważ programy do grafiki 3D pozwalają bardzo realnie odzwierciedlać odbicie konkretnych materiałów, kąty padania światła i cieniowania.
Mimo że grafikę dwuwymiarową wykorzystuje się w grach komputerowych, szczególnie izometrycznych czy niezależnych produkcjach niskobudżetowych (indie) to istnieją gry 2D, których modele są tworzone najpierw w grafice 3D i zastępują grafiki 2D, które są reprezentowane za pomocą spritów. Pozwala to zwiększyć realizm i jakość graficzną. Przykładem mogą być gry z serii Guilty Gear. Porównanie jakości na poniższym filmie.
Algorytmy rastrowe
W przypadku grafiki wektorowej, która bazuje na obliczeniach matematycznych używane są różnego rodzaju obiekty — linie, wielokąty, krzywe beziera, okręgi, elipsy. Elementy te muszą zostać zrasteryzowane, aby wyświetlić się na ekranie.
Program otwierający taką grafikę bierze pod uwagę również kolor, wypełnienie, szerokość linii, ich style oraz warstwy, tak by nałożone na siebie obiekty prawidłowo się wyświetlały. Generowanie podglądu grafiki wektorowej odbywa się krok po kroku. Widać to, szczególnie gdy przeglądarka internetowa otwiera duży plik wektorowy, jak na przykładzie
Przykład poniżej to wygenerowany plik w formacie SVG, który matematycznie opisuje grafikę „odcisku palca” oraz jej podgląd w programie graficznym Affinity Designer.
Próbkowanie i antyaliasing
Próbkowanie to proces generowania obrazu rastrowego 2D. Oznacza odpowiednie przypisanie koloru do pojedynczych pikseli, z których składa się obraz rastrowy (bitmapa). W zależności od częstotliwości próbkowania mogą wystąpić artefakty i błędy, szczególnie gdy próbkowanie ustawione jest na niską wartość.
Celem próbkowania jest jak najlepsze wyświetlanie obrazu grafiki wektorowej na ekranie rastrowym komputera.
Stosuje się również antyaliasing. Pojęcie te oznacza wygładzenie krawędzi, by obraz, grafika była czytelniejsza na ekranie komputera. Celem antyaliasingu jest uniknięcie twardych, małych szczegółów obrazu, które są nazywane „schodkowaniem obrazu”. Dotyczy to szczególnie krawędzi obiektów.
Przykładem wykorzystania antyaliasingu jest opcja czcionek w systemie Windows zwana ClearType. W Windows 10 opcja nazywa się wygładzaniem krawędzi czcionek. Poniżej tekst bez wygładzenia na ekranie systemu Windows XP
Porównanie antyaliasingu z i bez w powiększeniu
Jasność i kolor
W grafice rastrowej kolor każdego piksela określa się za pomocą przestrzeni kolorów. W przypadku przestrzeni RGB są to czerwony (red), zielony (green) oraz niebieski (blue) istnieją również inne przestrzenie jak HSV oraz do drukowania CMYK.
Liczba kolorów zależy od głębi kolorów stosowanych na pojedynczy piksel. Przykładowo 32-bitowa głębia koloru składa się z 4,294,967,296 kolorów, 8 bit to 256 kolorów, 4 bity 16,2 bity 4,1 bit to dwa kolory. Głębie kolorów oznacza się skrótem bbp, bits per pixel.
Głębia powyżej 30 bitów jest określana jako deep color i jest rzadko stosowana, zdjęcia umieszczane w internecie zazwyczaj wykorzystuje się grafiki 16-bitowe (32,768 kolorów z kanałem przezroczystym lub 65,536 bez) lub 24-bitowe (16,777,216 kolorów). Dla porównania ludzkie oko może rozpoznać około 1 mln kolorów, w tym 100 rodzajów szarości
W przeszłości wiele kart graficznych oraz monitorów nie obsługiwało 32-bitowej głębi kolorów lub obsługiwało ją w nie najwyższej możliwej rozdzielczości ekranu. Zmniejszenie głębi kolorów pozwala na ograniczenie wielkości zdjęcia, co jest korzystne, gdy rasteryzujemy obraz wektorowy.
Modelowanie geometryczne
Projektowanie geometryczne wspomagane komputerowo oznacza opisywanie kształtu obiektów geometrycznych w formie cyfrowej. Do opisów wykorzystuje się krzywe i trójwymiarowe powierzchnie. Przykładem mogą być krzywe beziera i hermite’a, czy krzywe NURBS.
W zależności od ilości zastosowanych krzywych uzyskuje się lepiej wymodelowany obiekt i tym samym dłuższe jego renderowanie.
Modelowanie geometryczne oprócz wykorzystania w grafice komputerowej stanowi podstawę w programach CAD przy tworzeniu elementów inżynierskich czy naukowych. W tego typu projektowaniu zazwyczaj wykorzystuje się geometrię bryłową (CSG), ponieważ gwarantuje poprawny opis obiektów przygotowanych w ten sposób na komputerze.
Aplikacje do grafiki rastrowej
Na rynku istnieje wiele programów do modyfikowania i tworzenia grafiki rastrowej, wiele z nich dzieli się według najbardziej rozwijanych funkcji. Aplikacje oferują m.in. do cyfrowego rysowania, obróbki graficznej czy retuszu zdjęć. Pierwszymi aplikacji były Erdas Imagine (1980 rok), MacPaint (1984), PCPaint (1984) i Microsoft Paint (1985).
Jednym z najpopularniejszych jest oprogramowanie Adobe Photoshop. Jego pierwsza wersja została opublikowana w 1990 roku i stała się prekursorem w branży aplikacji tego typu. W tym samym roku wydany został również konkurent tej aplikacji, program Corel oraz darmowy pakiet do obróbki zdjęć ImageMagick, wykorzystujący komendy wiersza poleceń.
Przeczytaj artykuł o najlepszych programach do obróbki i edycji zdjęć.
Aplikacje do grafiki wektorowej
Pierwsze oprogramowanie pojawiło się w tym samym okresie co aplikacje do grafiki rastrowej. W 1985 roku wydany został bezpłatny program Xfig (1985), w którym można było tworzyć obiekty za pomocą okręgów, ramek, linii czy krzyw, umożliwia importowanie wielu formatów wektorowych. Program jest nadal rozwijany przez społeczność open-source, a jego najnowsza wersja jest z 2019 roku.
W 1987 na rynku pojawił się Adobe Illustrator, a w 1989 roku CorelDraw. Popularnymi aplikacji są również Microsoft Visio, Affinity Designer czy bezpłatny Inkscape i Kirita.
Trójwymiarowa grafika
Grafika trójwymiarowa składa się z trzech przestrzeni x, y, z którą nazywa się sceną. Jest ona obliczana przy użyciu syntezy obrazu, czyli renderowania. Na scenę możemy dodać obiekty takie jak światło czy kamera, a silnik renderujący podczas renderingu sam oblicza odpowiedni kąt padania światła, cienie czy odbicie od obiektu.
Renderowanie przebiega automatycznie, jednak w zależności od widoku i silnika renderującego jego wyniki mogą być różne. Podczas tworzenia obiektu 3D korzysta się z widoku szkieletowy (ang. wireframe) lub widoku solidnego.
Widoki służą do projektowania obiektu, ponieważ są minimalistyczne i nie posiadają rozbudowanych funkcji renderujących. Tak przygotowaną scenę następnie się poddaje renderowaniu do finalnej grafiki z wykorzystaniem odpowiedniego silnika do renderingu np. Cycles, EEVEE w przypadku aplikacji Blender.
Renderowanie w czasie rzeczywistym
Renderowanie w czasie rzeczywistym jest ciągłym procesem tworzenia grafiki na podstawie interakcji z użytkownikiem. Rendering ten wykorzystuje się w grach komputerowych, w których istnieje pojęcie klatek na sekundę (ang. frame per seconds) oraz w różnego rodzaju symulacjach w czasie rzeczywistym.
FPS-y oznaczają płynność gry komputerowej, czyli tego, jak szybko nasza karta graficzna może wyrenderować grafikę w grze. W zależności od wielkości i złożoności sceny gry, wydajność może znacząco spaść.
Przykładem może być rzut granatem dymnym w grze CS:GO, którego rendering zazwyczaj powoduje straszny spadek klatek na sekundę na słabszych kartach graficznych.
Cieniowanie
Cieniowanie (ang. shading) to technika tworzenia oświetlenia na obiekcie 3D. Wykorzystuje ona kolor powierzchni obiektu do źródła światła. Shading bierze pod uwagę m.in. odległości światła od obiektu, natężenia światła i indywidualne właściwości obiektu np. metaliczność obiektu. Celem jest przedstawienie wrażenia głębi na obiekcie. Shading nie dotyczy mapowania cienia rzucanego przez obiekt!
Istnieje kilka rodzajów cieniowania. W 1971 powstało cieniowanie Gourauda, które było jako pierwsze wykorzystywane w grafice 3D. Dwa lata później powstało cieniowanie Phonga.
Występują 3 techniki cieniowania, które łączy się z dowolnym modelem oświetlenia:
- Cieniowanie płaskie — prosta i wydajna metoda cieniowania obiektów z występowaniem pasków Macha.
- Cieniowanie Gourauda — cienowanie z interpolacją kolorów, stosuje się ją do obiektów z zakrzywionymi powierzchniami.
- Cieniowanie Phonga — najbardziej jakościowa technika cieniowania.
Realistyczne renderowanie
Realistyczne renderowanie obrazu zależy w głównej mierze od rozkładu światła w scenie 3D. Cieniowanie dokonuje oświetlenia bezpośredniego obiektu, natomiast oświetlenie pośrednie to odbicie światła między obiektami. Uwzględnienie wszystkich odbić światła określa się oświetleniem globalnym.
Programy 3D używają specjalnego typu algorytmów, aby uzyskać jak najlepszy efekt symulacji światła w renderingu sceny.
Wykorzystuję się szczególnie, śledzenie promieni światła (ang. raytracing) i techniki jak śledzenie ścieżki (ang. path tracing) czy mapowanie fotonów (ang. photon mapping). W branży filmowej stosuje się metodę REYES (Renders Everything You Ever Saw), która został stworzony przez LucasFilm w 1980 roku i wykorzystana została po raz pierwszy w filmie Star Trek II: The Wrath of Khan (1982)
Aplikacje do trójwymiarowej grafiki
Pierwszym znanym programem do grafiki 3D dla komputerów domowych był 3D Art Graphics na komputery Apple II (1978 rok).
W przypadku grafiki trójwymiarowej programy składają się z trzech głównych części.
- Do modelowania 3D
Jest to proces tworzenia obiektów 3D, które następnie można wykorzystać do animacji lub w grze komputerowej.
- Do układu i animacji
Obiekty 3D należy umieścić na scenie i ustawić ich zachowanie względem czasu, czyli zmianę pozycji, rotacji, deformacji za pomocą ramek kluczowych keyframe. Podczas tworzenia animacji postaci, popularną techniką jest przechwytywanie ruchu (ang. motion capture).
- Do renderingu 3D
Rendering to proces, który wykorzystuje stworzony model 3D do wygenerowania zdjęć 2D lub animacji komputerowej. Oznacza to spłaszczenie obiektu, sceny 3D do wersji 2D, która możliwa jest do wyświetlania na monitorze. Wykorzystuje się punkt centralny (obiekt kamery), który nadaje perspektywę 2D.
Przykładowe płatne programy Houdini, Cinema 4D, Autodesk Maya, Mudbox, Zbrush.
Bezpłatne aplikacje Blender, Sketchup Free, Daz Studio.
Nauka grafiki 3D i animacji
Jeżeli jesteś zainteresowany nauką grafiki 3D i pragniesz tworzyć własne animacje komputerowe, rekomenduje sprawdzenie darmowego programu Blender. Aplikacja ma niski próg wejścia oraz działa na większości komputerów z systemem Windows lub Linux. Program ten jest stosowany nie tylko przez osoby początkujące, ale również profesjonalistów.
Blender jako program open-source posiada przygotowane kursy i liczne grono użytkowników, którzy opublikowali tysiące poradników na YouTube. Rekomenduje bezpłatny poradnik, zawierający kilkanaście lekcji związanych z tym programem.
Przykładowe grafiki 3D
Grafiki komputerowe wykonane w programie Blender. W grafice komputerowej prostymi sposobami można uzyskać bardzo efektowne rezultaty.
Powyższe grafiki to pliki demo, które możesz pobrać w formacie .blend. Uruchomić je w aplikacji i zobaczyć jak zostały stworzone.
Animacja komputerowa
Animacja komputerowa to proces tworzenia ruchomych obiektów trójwymiarowych na scenie 3D, którą następnie klatka po klatce się renderuje i łączy w animowany film.
W zależności od ustawień na osi czasu obiekt może zmieniać swoje położenie lub dokonywać innej modyfikację w przestrzeni x, y, z. Wykorzystuje się klatki kluczowe (ang. keyframes), które interpretują wartości obiektu pomiędzy dwoma klatkami kluczowymi.
Po wygenerowaniu wszystkich klatek tworzy się na ich podstawie film, co powoduje stworzenie ruchomej animacji. Animacje, które wykorzystuje się w filmach, określa się skrótem CGI (ang. computer generated image).
Przykład prostej animacji obiektu w programie Blender.
W grafice trójwymiarowej niskim nakładem czasu można uzyskać świetne rezultaty, w szczególności gdy korzystamy ze wbudowanych symulacji. Poniżej kilka animacji stworzonych z wykorzystaniem programu Blender.
Źródła wykorzystane przy tworzeniu artykułu:
en.wikipedia.org/wiki/Computer_graphics
hollywoodreporter.com/behind-screen/how-furious-7-brought-late-845763
en.wikipedia.org/wiki/Final_Fantasy:_The_Spirits_Within
en.wikipedia.org/wiki/Uncanny_valley
de.wikipedia.org/wiki/Computergrafik
de.wikipedia.org/wiki/Geschichte_der_Computergrafik
web.archive.org/web/20161011135646/
https://excelsior.biosci.ohio-state.edu/~carlson/history/timeline.html
petapixel.com/2017/07/24/farewell-microsoft-paint-image-editor-killed-off-32-years/
bbc.com/future/article/20150727-what-are-the-limits-of-human-vision