Grafika 3D

Grafika 3D (grafika trójwymiarowa)- nazwa jednej z dziedzin grafiki komputerowej,zajmującej się głównie wizualizacją obiegktów trójwymiarowych. Nazwa pochodzi od angielskiego sformułowania Three-Dimensional Graphics.

 

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. 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.

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.

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 programy tego rodzaju to:

Istnieją również specjalizowane biblioteki programistyczne służące do tworzenia interakcyjnej grafiki 3D. Najbardziej znane to OpenGL i DirectX.