grafika-komputerowa-gora-drzewo

Grafika komputerowa | Definicja, Historia, Podział, Wykorzystanie

Odkryj fascynujący świat grafiki komputerowej: od jej początków po współczesne zastosowania

Ostatnio zaktualizowany:

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 System AN/FSQ-7
System Sage z widocznym monitorem CRT źródło By Steve Jurvetson from Menlo Park, USA – IBM’s $10 Billion Machine, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=3600387

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ą.

System Sage
Wyświetlacz sytuacyjny OA-1008 (SD) z pistoletem świetlnym. Element systemu SAGE. Źródło https://commons.wikimedia.org/wiki/File:SAGE_console.jpeg

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.

DAC-1
Pierwszy komercyjny system CAD – DAC-1 Źródło https://web.archive.org/web/20161011135646/https://excelsior.biosci.ohio-state.edu/~carlson/history/timeline.html

W 1958 roku stworzoną pierwszą grę komputerową Tennis for Two, która wykorzystywała ekran oscyloskopu do rozgrywki.

pierwsza gra komputerowa tennis for two
Pierwsza gra komputerowa – tennis for two źródło: Wikipedia By Brookhaven National Laboratory (BNL) – Screenshot, Public Domain, https://commons.wikimedia.org/w/index.php?curid=27864450

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!

komputer pdp-1 z grą space war
Gra komputerowa Space War  na komputerze PDP-1 (1962) źródło: By Joi Ito from Inbamura, Japan – Spacewar running on PDP-1, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=2099696

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.

Sposób działania krzyw beziera
Sposób działania krzyw beziera źródło Phil Tregoning – Created using ImageMagick, Public Domain, https://commons.wikimedia.org/w/index.php?curid=1727377

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.

Terminal graficzny IBM 2250
Wykorzystanie pióra świetlnego Terminal-graficzny IBM 2250 (1969 rok)
Źródło Gregory Lloyd https://commons.wikimedia.org/wiki/File:HypertextEditingSystem
ConsoleBrownUniv1969.jpg

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.

czajnik utah 1975 rok
Nowoczesne przedstawienie czajniczka, który został wyrenderowany w 1975 roku przez Martina Newella z wykorzystaniem krzywych Beziera. Źródło: Wikipedia.org autor Dhatfield

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.

Space Invaders
Spirty wykorzystane w grze Space Invaders.

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.

Komputer domowy IBM PC 5150
Komputer domowy IBM PC 5150 (rok 1981) źródło: CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=51833

 

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.

Rendering z wykorzystaniem komputera Links-1 1984 rok
Rendering z 1984 roku. Wykorzystanie komputera LINKS-1 źródło http://museum.ipsj.or.jp/en/computer/other/0013.html

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.

3D Studio Max (1996)
3D Studio Max (1996)

Powstały też pierwsze darmowe programy do tworzenia grafiki 3D. Blender (1994) oraz Anim8or (1999).

Pierwsza wersja programu Blender
Pierwsza wersja programu Blender

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.

Pojęcie doliny niesamowitości - Robot na wzór człowieka
Pojęcie doliny niesamowitości – Robot na wzór człowieka Photo by Gnsin – Gnsin, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=234900

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).

Grafika trójwymiarowa
Tworzenie grafiki trójwymiarowej w programie Blender – z widoczną kamerą i sceną w przestrzeni x, y, z

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.

grafika wektorowa svg kod
Obliczenia matematyczna grafiki wektorowej otworzonej w przeglądarce Google Chrome

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.

Grafika rastrowa - przykład
Siatka pikseli po powiększeniu zdjęcia rastrowego

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

plik svg wczytywanie
Iteracja zdjęcia SVG (Uwaga: Zdjęcie po kliknięciu ma rozmiar 75 Mb)

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.

Opis matematyczny obrazu wektorowego w SVG
Grafika wektorowa – Opis matematyczny obrazu wektorowego w SVG oraz jego rendering w programie 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

Brak antyaliasingu czcionek
Brak antyaliasingu czcionek źródło https://blog.typekit.com/2010/09/28/turning-on-cleartype-on-windows-xp/
Wygłądzenie grafiki wektorowej (czcionki)
Wygładzenie grafiki wektorowej – czcionek. Źródło https://blog.typekit.com/2010/09/28/turning-on-cleartype-on-windows-xp/

Porównanie antyaliasingu z i bez w powiększeniu

Porównanie antyaliasingu w dużym zbliżeniu
Porównanie antyaliasingu w dużym zbliżeniu źródło https://pl.wikipedia.org/wiki/Antyaliasing

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łebia kolorów
Głebia kolorów – porównanie

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.

NURBS
Powierzchnia wykonana za pomocą krzywych NURBS w programie Blender

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.

Drzewo CSG
Drzewo CSG – w jaki sposób proste elementy brył wykorzystuje sie do tworzenia bardziej skomplikowanych geometrii źródło Zottie – Eigenes Werk, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=263170

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).

Microsoft Paint 1985
Microsoft Paint 1985 źródło: https://petapixel.com/2017/07/24/farewell-microsoft-paint-image-editor-killed-off-32-years/

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.

Affinity Designer
Interfejs programu Affinity Designer do grafiki wektorowej

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.

Pojęcie doliny niesamowitości - Robot na wzór człowieka
Tworzenie grafiki trójwymiarowej w programie Blender – z widoczną kamerą i sceną w przestrzeni x, y, z

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.

Widok Wireframe (szkieletowy)
widok solid blender
Widok solid

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.

BMW Blender
Samochód BMW. Rendering wykonany w aplikacji Blender silnikiem Cycles.

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.

Cieniowanie w grafice 3D
Cieniowanie w grafice 3D

Występują 3 techniki cieniowania, które łączy się z dowolnym modelem oświetlenia:

  1. Cieniowanie płaskie — prosta i wydajna metoda cieniowania obiektów z występowaniem pasków Macha.
  2. Cieniowanie Gourauda — cienowanie z interpolacją kolorów, stosuje się ją do obiektów z zakrzywionymi powierzchniami.
  3. 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.

Tworzenie animacji w blender
Tworzenie animacji obiektów na listingu czasu w aplikacji blender

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

Custom Sidebar

You can set categories/tags/taxonomies to use the global sidebar, a specific existing sidebar or create a brand new one.