Grafika komputerowa | Definicja, Historia, Podział, Wykorzystanie

 w Definicje, Grafika komputerowa,

Grafika komputerowa jest dziedziną informatyki, która tak naprawdę najszerzej przedostała się do życia i codzienności. Jej wytwory obecne są niemalże wszędzie — od najmniejszych ogłoszeń ściennych, po wielkie bannery zajmujące powierzchnię całych wieżowców, ale grafika komputerowa, to nie tylko branża reklamowa.

Opiera się na niej wiele branż przemysłowych m.in. tworzenie gier komputerowych, wykonywanie animacji, filmów z efektami specjalnymi. Wykorzystuje się ją również w różnego rodzaju symulacjach fizycznych oraz projektowaniu CAD. Wykorzystywana jest również w przemyśle wojskowym, chociażby wyświetlać informacje pozyskane z radarów na ekranie monitora.

Czym jest grafika komputerowa? To po prostu dziedzina informatyki zajmująca się szeroko pojętą obróbką obrazu. Jej przedmiotem może być wizualizacja artystyczna bądź też dosłowna wizualizacja realistyczna — komputerowe odzwierciedlenie rzeczywistości.

Rozwój grafiki postępował harmonijnie z postępem technicznym komputerów. Szczególnie wzrost wydajność sprzętowej spowodował, że dzisiaj każdy z nas może tworzyć grafikę 3D na swoim domowym komputerze. Tworzenie animacji w latach 70 czy 80 wymagało ogromny zasobów finansowych i superkomputerów, które były dostępne dla nielicznych. Dlatego warto przyjrzeć się rozwojowi grafiki komputerowej na przestrzeni lat.

Historia grafiki komputerowej

1950+ Zalążki grafiki komputerowej

Wczesne komputery używały druku jako urządzenia wyjściowego, bez możliwego poglądu graficznego na monitorze. Pozwalało to drukować pierwsze rysunki i diagramy, jednak było to bardzo ograniczone techniczne i wymagało wielu wydruków, by uzyskać zadowalający efekt.

Historia grafiki rozpoczęła się wraz z postępem w elektronice. Wdrożenie kineskopu (ekran CRT), było początkiem pierwszych manipulacji graficznych, ponieważ użytkownik widział dokładny rezultat na ekranie monitora, a nie dopiero po wydrukowaniu. Wdrożenie komputera Whirlwind z ekranem CRT (1951) postrzega się jako początek grafiki komputerowej.

Największy rozwój grafiki komputerowej był związany z rozwojem wojskowym, szczególnie technologią radarową, lotniczą czy rakietową. Dane zbierane z wielu różnych radarów, musiały zostać wyświetlone na ekranie urządzenia monitorującego w łatwy i zrozumiały sposób. Spowodowało to znaczący rozwój grafiki komputerowej.  Do tego celu powstał SAGE, czyli system nadzoru powietrznego dla sił 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).

https://youtu.be/-3ODe9mqoDE

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ść. Poniżej przykład możliwości silnika graficznego Unreal Engine 5.

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
https://bitskins.com/?market_hash_name=katarzyna%20janicka

Zostaw komentarz