Grafika Trójwymiarowa
Grafika 3D (grafika trójwymiarowa) – nazwa jednej z dziedzin grafiki komputerowej, zajmującej się głównie wizualizacją obiektów trójwymiarowych. Nazwa pochodzi od angielskiego sformułowania Three-Dimensional Graphics.
Geometria Geometria obiektów trójwymiarowych może być reprezentowane na kilka sposobów: Siatka wielokątów – obiekt jest budowany z płaskich wielokątów (najczęściej trójkątów lub czworokątów), które mają wspólne wierzchołki i krawędzie. W ten sposób można tworzyć proste bryły, albo – jeśli siatka jest dostatecznie gęsta – dobrze przybliżać skomplikowane obiekty. Voxele (woksele) – obiekt jest budowany z elementarnych sześcianów (trójwymiarowych pikseli). Tego rodzaju reprezentacja jest rozpowszechniona szczególnie w diagnostyce medycznej, gdzie uzyskuje się szereg przekrojów (obrazów bitmapowych) ciała pacjenta i na ich podstawie tworzy trójwymiarowe modele. Opis matematyczny – obiekty są określone równaniami. Mogą to być np. kule, płaszczyzny, oraz szczególnie użyteczne i powszechnie stosowane powierzchnie parametryczne (płaty powierzchni), np. powierzchnie Béziera, Hermite'a czy NURBS.
Dane trójwymiarowe mogą zostać pobrane ze świata rzeczywistego, np Dane trójwymiarowe mogą zostać pobrane ze świata rzeczywistego, np. za pomocą wspomnianych tomografów komputerowych, skanerów trójwymiarowych, ze zdjęć satelitarnych (topografia terenów) a także ze zdjęć stereoskopowych. W animacji komputerowej wykorzystywana jest również technika motion capture, która polega na nagrywaniu ruchu człowieka – czujniki położenia umieszczane są w kluczowych punktach ciała: na rękach, nogach, głowie, karku itp. Przeniesienie nagranych w ten sposób ruchów na sztuczne postacie nadaje ich ruchom naturalność, trudną do uzyskania klasycznymi metodami animacji. Obiekty trójwymiarowe mogą również zostać stworzone przez człowieka w procesie modelowania. Duże znaczenie mają też techniki komputerowe, które automatycznie modelują skomplikowane efekty (takie jak dym, ogień, śnieg, deszcz) i obiekty (chmury, góry, drzewa).
Wizualizacja Ponieważ obecnie wszystkie urządzenia komputerowe wyświetlają dwuwymiarowe obrazy, dlatego z grafiką trójwymiarową związana jest bezpośrednio geometria wykreślna. Głównie w zastosowaniach inżynierskich (CAD) sceny trójwymiarowe przedstawione są w rzucie prostokątnym, natomiast w pozostałych w rzucie perspektywicznym. Efekty wizualny rzutu perspektywicznego (skrót perspektywiczny) jest bardzo podobny do efektów obserwowanych w fotografii oraz w systemie wzrokowym człowieka. Przez analogię do aparatu fotograficznego (lub kamery), w grafice trójwymiarowej istnieje pojęcie wirtualnej kamery, która tworzy "zdjęcie" sceny istniejącej w pamięci komputera. Kamerę wirtualną charakteryzują następujące parametry: położenie, kierunek w jakim jest skierowana oraz ogniskowa – mają one swoje odbicie w matematycznym modelu kamery. Obrazy trójwymiarowe są tworzone głównie w technice rastrowej, wektorowo przedstawia się co najwyżej obrysy, szkice itp. Głównym problemem w obu przypadkach jest wyznaczanie powierzchni widocznych, a więc selekcja tych obiektów (lub ich części), które są widoczne w danym rzucie. Robi się to np. za pomocą bufora Z, sortowania względem głębokości, śledzenia promieni. Ponadto przeważnie obserwujemy niewielki fragment sceny, a dodatkowo scena może składać się z wielkiej liczby obiektów (sięgającej nawet setek milionów), dlatego równie ważne jest określenie, które obiekty mogą być widoczne, aby przetwarzać tylko te dane, które naprawdę są potrzebne. Zobacz: usuwanie niewidocznych powierzchni.
Odbicie i załamanie światła, miękkie cienie Realizm Odbicie i załamanie światła, miękkie cienie Rozpraszanie światła pod powierzchnią obiektu (ang. subsurface scattering) Realizm obrazów generowanych przez komputer jest w większości zastosowań bardzo ważny. Aby go uzyskać modeluje się oświetlenie: definiuje światła, powierzchniom obiektów trójwymiarowych nadaje kolor i fakturę, określa cienie rzucane przez obiekty, odbicia zwierciadlane, załamanie i rozpraszanie światła itd., itp. Metody, które pozwalają na bardzo dokładne przedstawienie scen trójwymiarowych są również bardzo kosztowne obliczeniowo (np. raytracing, radiosity). Z kolei szybkie, przybliżone metody cieniowania obiektów, tworzenia cieni, odbić zwierciadlanych są z powodzeniem wykorzystywane w grach komputerowych. W przypadku animacji ważne jest także aby ruch obiektów, był możliwie najbardziej zbliżony do zachowania przedmiotów w świecie rzeczywistym
Oprogramowanie Do tworzenia grafiki 3D zostało stworzonych wiele programów na różne platformy sprzętowe i systemy operacyjne. Zwykle programy te dzieli się na modelery (tworzenie i obróbka scen trójwymiarowych) oraz renderery (generowanie trójwymiarowego obrazu lub animacji, wraz z nakładaniem tekstur, efektami świetlnymi, itp.). Niektóre bardziej znane programy tego rodzaju to: 3D Studio Max Amapi 3D Anim8or Blender Cinema 4D LightWave Maya Poser POV-Ray Rhinoceros SOFTIMAGE|XSI Terragen Truespace Zmodeler 3d Istnieją również specjalizowane biblioteki programistyczne służące do tworzenia interakcyjnej grafiki 3D. Najbardziej znane to OpenGL i DirectX.
Szczegółowe pojęcia modelowanie teksturowanie rigging polygon SubPatches siatka mapa UV subdivision surfaces box modeling wierzchołek (vertex) teksturowanie mapowanie tekstura proceduralna image map materiał shader titling rigging bone łańcuch kinematyczny kinematyka odwrotna (IK) weight map
animowanie oświetlenie rendering klatka kluczowa ścieżka motion control frame rate oświetlenie światło wolumetryczne global illumination caustics shadow map flara cieniowanie płaskie cieniowanie Gourauda cieniowanie Phonga HDR (High Dynamic Range) rendering renderer scanline radiosity ray tracing fotorealizm
Wytłumaczenie najważniejszych pojęć
Rendering Grafika z programu Terragen Rendering (ang.), renderowanie - to w grafice 3D przeliczenie danej sceny i utworzenie pliku wyjściowego w formie obrazu statycznego lub animacji. Podczas renderingu wyliczane są m.in. odbicia, cienie, załamania światła, mgła, atmosfera, efekty wolumetryczne. Jest to bardzo czasochłonna operacja nie wymagająca, poza przygotowaniem, żadnej ingerencji ze strony człowieka. Rendering może przeprowadzić praktycznie każdy program do grafiki 3D, nie będący tylko modelerem. Najczęściej wykorzystywaną metodą renderingu w programach do grafiki 3D typu 3D Studio Max jest ray tracing (śledzenie promieni). HDR High dynamic range rendering - technologia generowania sceny w grafice trójwymiarowej High dynamic range imaging - technika w fotografii Obraz HDR - obrazy o rozszerzonym zakresie jasności (ang. High Dynamic Range images)
Modelowanie — w grafice 3D proces tworzenia i modyfikacji obiektów trójwymiarowych za pomocą specjalizowanego programu komputerowego, zwanego modelerem. Modeler dostarcza zestawu niezbędnych narzędzi, a także często zbioru podstawowych figur (w j. ang. primitives), np. prostopadłościanów, kul, torusów i innych, które można wykorzystać od razu przy budowaniu obiektów. Obiekty 3D są przeważnie budowane z siatek wielokątów lub definiowane przy pomocy krzywych parametrycznych (np. NURBS), modelery używają obu reprezantacji. Siatka wielokątów ma tę przewagę, że łatwo można deformować obiekt (np. skręcać, wyginać, stosować system kości), z kolei krzywe parametryczne w naturalny sposób tworzą gładkie powierzchnie. Modelowanie bardziej skomplikowanych obiektów jest możliwe dzięki kilku technikom: nadawanie dwuwymiarowym przekrojów głębokości, poprzez przesuwanie przekrojów wzdłuż ścieżki tworzenie brył obrotowych, poprzez obrót dwuwymiarowych przekrojów wokół osi definiowanie brył przez operacje boolowskie (suma, różnica, iloczyn) na innych bryłach (tzw. Constructive Solid Geometry (CSG), konstruktywna geometria brył) subdivision surfaces – nieskomplikowana bryła tworzy „zarys” obiektu, natomiast algorytm nadaje jej bardziej obły, organiczny kształt (poprzez rekursywny podział powierzchni i interpolację za pomocą krzywych parametrycznych) metakule (ang. metaballs) — tworzona jest powierzchnia, dla której wartości w polu skalarnym są jednakowe, projektant rozmieszcza w przestrzeni trójwymiarowej źródła tego pola – początkowo wykorzystywano centralnie promieniujące punkty (których obraz jest podobny do zlewających się kul), obecnie używa się także promieniujących odcinków i płaszczyzn
Teksturowanie W grafice 3D modelowanie rzeczywistych obiektów i oddanie za pomocą geometrii wszystkich szczegółów powierzchni jest trudne, a najczęściej niewykonalne. Dlatego stosuje się teksturowanie, czyli nakładanie na względnie proste obiekty trójwymiarowe obrazów (tekstur), które przedstawiają brakujące szczegóły. Tekstury dzieli się na: Bitmapowe — są to na ogół zdjęcia powierzchni rzeczywistych przedmiotów (ścian, tkanin, kory drzew, desek, itp.). Proceduralne — parametryzowane obrazy generowane programowo, np.: szachownica, marmur, drewno, granit, chmury. Tekstury proceduralne mogą być również trójwymiarowe (przestrzenne), wówczas kolor jest funkcją współrzędnych punktu w przestrzeni trójwymiarowej
Mapowanie Odwzorowanie współrzędnych dwuwymiarowej tekstury na współrzędne obiektu trójwymiarowego nazywane jest mapowaniem (mapowaniem tekstury): Odwzorowanie może zostać utworzone w procesie generacji obiektu. Jeśli obiekt jest reprezentowany przez siatkę wielokątów projektant może określić współrzędne tekstury dla każdego wierzchołka. Mapowanie płaskie (lewa), mapowanie sferyczne (prawa) Tekstura mapowana jest najpierw na jakąś prostą figurę przestrzenną, a następnie konkretne punkty są rzutowane na tę figurę. Używane figury: płaszczyzna (mapowanie płaskie), sfera (mapowanie sferyczne) lub elipsoida, powierzchnia walca (mapowanie cylindryczne), sześcian (mapowanie sześcienne, ang. box mapping). Odwzorowanie jest wykonywane w lokalnym układzie współrzędnych obiektu, co sprawia, że tekstura jest „przyklejona” na stałe do obiektu, nadając jego powierzchni pożądany charakter. Rzadziej tekstura jest nieruchoma względem obiektu; w grafice czasu rzeczywistego (np. grach komputerowych) w ten sposób symuluje się metaliczne obiekty, które odbijają otoczenie (jest to tzw. mapowanie środowiska).
Opisy możliwości niektórych programów do grafiki 3d
SOFTIMAGE|XSI - profesjonalny program do tworzenia animacji i grafiki trójwymiarowej, stworzony przez firmę Softimage, będącej częścią Avid Technology. Jest wykorzystywany w przemyśle filmowym, grach komputerowych, prezentacjach multimedialnych i innych. Aby zaspokoić rozmaite potrzeby i możliwości finansowe użytkowników program jest dostępny w trzech wersjach: Foundation (dostępna 30-dniowa wersja testowa). Najważniejsze funkcje to: silnik Gigapolygon Core pozwalający na wyświetlanie milionów wielokątów w czasie rzeczywistym oraz rendering bilionów wielokątów, szereg narzędzi do modelowania (modelowanie siatkowe, subdivions surfaces uznawane za jedno z najszybszych i najpotężniejszych na rynku, NURBS) i animacji (w tym postaci), wbudowane pre-ustawienia szkieletów, system animacji nieliniowej, pełna symulacja tkanin, płynów, cząstek i ciał miękkich, renderer mental ray ze wsparciem dla max. 2 procesorów, SDK oraz API dla języków C#, C++, VBScript, Python oraz JScript. Essentials - zawiera wszystkie funkcje Foundation, a oprócz tego m.in. symulację dynamiki bryły sztywnej, narzędzia do transferu właściwości (GATOR) oraz ruchu (MOTOR) pomiędzy różnymi obiektami, narzędzie do redukcji wielokątów, systemy kompozycji oraz malowania oparte na technologiach Avid Matador i Avid Media Illusion. Advanced - zawiera wszystkie funkcje poprzednich wersji a oprócz tego m.in. plugin Syflex (jedno z najlepszych i najszybszych na rynku narzędzi do symulacji tkanin i ciała) oraz narzędzia do symulacji tłumu, włosów i futra, renderer ze wsparciem dla max. 4 procesorów. Dla studentów i nauczycieli dostępna jest wersja Academic Edition (wyłącznie pod system Windows) - zawiera wszystkie funkcje wersji Advanced, jednak nie może być wykorzystywana do celów komercyjnych. Oprócz tego istnieje darmowa wersja SOFTIMAGE|XSI Mod Tool (wyłącznie pod system Windows) pozwalająca na tworzenie modów (obiektów, poziomów itd.) do gier. Zastosowanie Niektóre produkcje, przy tworzeniu których korzystano z programu SOFTIMAGE|XSI. Filmy: 300 Park Jurajski Star Wars Sin City Stuart Malutki 3 Titanic Gry: Half-Life 2 Final Fantasy XI Metal Gear Solid 4 Moto GP
Blender jest programem do modelowania i renderowania obrazów oraz animacji trójwymiarowych z dość niekonwencjonalnym interfejsem użytkownika. Umożliwia także tworzenie prezentacji interaktywnych (np. gier) na własnym silniku graficznym (istnieje osobny program pozwalający uruchamiać takie prezentacje). Jego autorem jest firma NaN (Not A Number). Jest dostępny na różne platformy sprzętowe i programowe, począwszy od Windows i GNU/Linuksa a skończywszy na Solaris, IRIX, ZetaOS i Windows Mobile. Do 13 listopada 2002 program (wielkość ok. 4 MB) był dostępny za darmo do użytku prywatnego, jak też do zastosowań komercyjnych (Blender jest popularnym narzędziem do produkcji reklam telewizyjnych, gier komputerowych), opłaty pobierane były za pomoc techniczną. Był też dostępny w sprzedaży kompletny pakiet wraz z obszerną dokumentacją. Od 13 listopada 2002 Blender jest programem wolnym rozprowadzanym na licencji GPL. "Uwolnienie" Blendera nastąpiło po odkupieniu przez Blender Foundation, za kwotę 100 000 euro, praw do programu od jego właścicieli (NaN holding). Nastąpiło to po ogłoszeniu upadłości przez firmę NaN. Potrzebna suma została zgromadzona na drodze publicznej zbiórki w czasie zaledwie siedmiu tygodni. Blender Rodzaj Program graficzny (grafika 3D) Pierwsze wydanie wersja 1.0: styczeń 1995; jako Otwarte Oprogramowanie: 13 listopada 2002 Aktualna wersja 2.44 / 14 maja 2007 Producent Blender Foundation Licencja GNU GPL Platforma systemowa GNU/Linux, Mac OS X, Windows, Solaris, FreeBSD, IRIX, SkyOS, MorphOS
KONIEC