Grafika trójwymiarowa

Z Wikipedii

(Przekierowano z Grafika 3D)
Skocz do: nawigacji, szukaj
Ujednoznacznienie Ten artykuł dotyczy dziedziny grafiki komputerowej. Zobacz też: inne znaczenia tego skrótu.

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ć reprezentowana 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. Istnieją programy, które swoje funkcjonowanie opierają głównie o właśnie taki sposób modelowania, zaliczyć do nich można np. POV-Ray.

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

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. Bardzo popularną techniką uzyskiwania realizmu w scenie jest obliczanie oświetlenia na każdy piksel z osobna. Jest to operacja kosztowna obliczeniowo, jednak dzięki wspomaganiu sprzętowemu (Pixel Shader) możliwa do uzyskania animacji w czasie rzeczywistym .

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:

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:

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

Utwórz książkę