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.

Mapowanie

Tekstura proceduralna

Shader

 

 

Mapowanie

Odwzorowanie współrzędnych dwuwymiarowej tekstury na współrzędne obiektu trójwymiarowego nazywane jest mapowaniem (mapowaniem tekstury):

  1. Odwzorowanie może zostać utworzone w procesie generacji obiektu.
  2. Jeśli obiekt jest reprezentowany przez siatkę wielokątów projektant może określić współrzędne tekstury dla każdego wierzchołka.
  3. 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).

 

Tekstura proceduralna

To w grafice komputerowej (głównie w grafice 3D ) nazwa tekstur , które są tworzone na podstawie określonych procedur matematycznych ( algorytmów ). Tekstury proceduralne charakteryzuje praktycznie nieskończona dokładność, bowiem w odróżnieniu od tekstur bitmapowych, kolor punktu jest funkcją współrzędnych rzeczywistych, a nie całkowitych. Możliwe jest więc dowolne powiększanie takiej tekstury - oczywiście na tyle, na ile pozwala precyzja obliczeń.

Tekstury proceduralne mogą być dwuwymiarowe, wówczas kolor piksela jest funkcją dwóch zmiennych (patrz też: mapowanie ). W przypadku niektórych tekstur istnieją warianty trójwymiarowe, gdzie kolor punktu jest funkcją jego współrzędnych przestrzennych.

Przykłady tekstur proceduralnych:

Ważną cechą tekstur proceduralnych jest możliwość animacji ich parametrów (np. kolorów).

Niektóre programy graficzne pozwalają na różnorakie łącznie tekstur proceduralnych (czy w ogóle tekstur), tj. mieszanie kolorów, maskowanie, wprowadzenie zakłóceń itd. pozwalając uzyskać tym samym za pomocą względnie prostych tekstur składowych bardzo złożone obrazy.

 

Shader

To krótki program komputerowy, często napisany w specjalnym języku ( shader language ), który w grafice trójwymiarowej odpowiada za cieniowanie obiektów.

Pozwala na dużo bardziej skomplikowane modelowanie oświetlenia i materiału na obiekcie niż standardowe modele oświetlenia i teksturowanie . Jest jednak dużo bardziej wymagający obliczeniowo i dlatego dopiero od kilku lat sprzętowa obsługa shaderów jest obecna w kartach graficznych dla komputerów domowych. Wcześniej, shadery stosowane były w niektórych fotorealistycznych rendererach (np. Renderman ), gdzie grafika nie jest generowania w czasie rzeczywistym.

W stosunku do standardowych modeli oświetlenia, stosowanych do generowania grafiki w czasie rzeczywistym, shadery dają możliwość uwzględnienia między innymi: