Grafika trójwymiarowa
Z Wikipedii
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.
Spis treści |
[edytuj] 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).
[edytuj] 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.
[edytuj] Realizm
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.
[edytuj] Sprzęt
Współczesne karty graficzne potrafią wyświetlać obiekty trójwymiarowe zbudowane z wielokątów, wykonując dużą część obliczeń związanych z generowaniem grafiki 3D:
- przekształcenia geometryczne (takie jak obrót, skalowanie, rzutowanie perspektywiczne)
- cieniowanie wielokątów
- proste modele oświetlenia
- teksturowanie wielokątów
- mapy nierówności (tj. Bump Mapping, Normal Mapping)
Współczesne GPU pozwalają dzięki shaderom oprogramować praktycznie dowolne efekty, zarówno na poziomie wierzchołków jak i pojedynczych pikseli.
[edytuj] 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.
[edytuj] Szczegółowe pojęcia
- modelowanie
- polygon
- SubPatches
- siatka
- mapa UV
- subdivision surfaces
- box modeling
- vertex
- teksturowanie
- rigging
- bone
- łańcuch kinematyczny
- kinematyka odwrotna (IK)
- weight map
- animowanie
- klatka kluczowa
- ścieżka
- motion control
- frame rate
- oświetlenie
- rendering
- renderer
- scanline
- radiosity
- ray tracing
- fotorealizm