Grafika 3D, grafika trójwymiarowa – dziedzina grafiki komputerowej zajmująca się głównie wizualizacją trójwymiarową danych geometrycznych pozwalających na przedstawienie dowolnego obiektu lub powierzchni w technice trójwymiarowej[1].
Obiekt (model) 3D jest matematyczną reprezentacją dowolnego trójwymiarowego obiektu; model nie jest technicznie grafiką, dopóki nie zostanie wyświetlony. Model może być wyświetlany wizualnie jako dwuwymiarowy obraz w procesie zwanym renderowaniem 3D lub może być używany w niegraficznych symulacjach komputerowych i obliczeniach. Dzięki drukowaniu 3D modele są renderowane w rzeczywistą fizyczną reprezentację 3D, z pewnymi ograniczeniami, jak dokładnie model fizyczny może odpowiadać modelowi wirtualnemu[2].
Geometria
[edytuj | edytuj kod]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.
- 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ć kule, płaszczyzny oraz szczególnie użyteczne i powszechnie stosowane powierzchnie parametryczne (płaty powierzchni), na przykład płaty 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 POV-Ray.
Dane trójwymiarowe mogą zostać pobrane ze świata rzeczywistego, między innymi 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. 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 (dym, ogień, śnieg, deszcz) i obiekty (chmury, góry, drzewa).
Przy generowaniu grafiki trójwymiarowej używa się m.in. macierzy oraz ich przekształceń. Dzięki macierzom można szybko wykonywać elementarne przekształcenia na wierzchołkach modeli trójwymiarowych, takie jak obrót, skalowanie oraz przesunięcie.
Wizualizacja
[edytuj | edytuj kod]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.
Efekt wizualny rzutu perspektywicznego (skrót perspektywiczny) jest bardzo podobny do efektów obserwowanych w fotografii oraz w układzie 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 na przykład 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.
Realizm
[edytuj | edytuj kod]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, rozpraszanie światła itp.
Metody, które pozwalają na bardzo dokładne przedstawienie scen trójwymiarowych są również bardzo kosztowne obliczeniowo (np. śledzenie promieni, metoda energetyczna). 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[1].
Sprzęt
[edytuj | edytuj kod]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 (mapowanie wypukłości, mapowanie normalnych)
Współczesne GPU pozwalają dzięki shaderom oprogramować praktycznie dowolne efekty, zarówno na poziomie wierzchołków (vertex shadery), jak i pojedynczych pikseli (pixel shadery).
Oprogramowanie
[edytuj | edytuj kod]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.).
Drukowanie 3D
[edytuj | edytuj kod]Drukowanie w trzech wymiarach jest możliwe do wykonania od roku 1984, a opatentowane zostało w 1986 r. Profesjonalne i specjalistyczne drukarki 3D (duże i drogie) stosowane były już w latach 90. – np. BMW zakupiło pierwszą drukarkę 3D drukującą z żywic światłoutwardzalnych w technologii SLA w 1990 roku, a rok później zaprezentowało pierwszą wydrukowaną część do swojego auta. Prototyp pierwszej domowej drukarki 3D powstał w 2006 roku, a kolejne modele drukarek były tworzone z myślą o łatwym i tanim eksploatowaniu tych urządzeń. Na obecną chwilę (2017 r.) obserwuje się dynamiczny wzrost liczby drukarek 3D do powszechnego użytku, samych urządzeń o różnych typach konstrukcji, przeróżnych metod druku (przyrostowa, spiekania laserowego itp.) i ogromnej liczby materiałów do wykonywania druku (wosk syntetyczny, żywice, proszki gipsowe, proszki metali, tworzywa sztuczne itp).
Przy pomocy drukarki 3D można wytworzyć:
- gotowe produkty z tworzywa sztucznego;
- rzeczy, do których produkcji można wykorzystać topliwe materiały;
- części do innych przedmiotów;
- prototypy urządzeń;
- wszelkiego rodzaju formy.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ a b Podstawy modelowania 3D: Wszystko, co musisz wiedzieć.. 3d.edu.pl. [dostęp 2023-06-27].
- ↑ 3D computer graphics.. www.sciencedaily.com. [dostęp 2023-06-27].