Grafika Trójwymiarowa

advertisement
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. 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.
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







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




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
Download