Siatka (grafika 3D)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Przykładowy obiekt opisywany siatką wielokątów

Siatka to w grafice 3D i CAD dwa lub więcej wielokątów połączonych ze sobą krawędziami. Zwykle siatki tworzone są z trójkątów lub czworokątów wypukłych.

W ten sposób można opisywać proste bryły, albo – jeśli siatka jest dostatecznie gęsta – dobrze przybliżać skomplikowane obiekty. Obiekty trójwymiarowe reprezentowane w ten sposób można w łatwy sposób poddawać różnym modyfikacjom i deformacjom.

Reprezentacje siatek[edytuj | edytuj kod]

Siatka twarzy zbudowana z czworokątów

Siatka może być reprezentowana na kilka sposobów:

  1. Tablica wielokątów — każdy wielokąt przechowuje współrzędne swoich wierzchołków.
  2. Tablica wielokątów ze wskaźnikami na wierzchołki — obiekt jest reprezentowany przez dwie tablice: wielokątów i wierzchołków. Każdy wielokąt przechowuje listę indeksów do tablicy wierzchołków, natomiast tablica wierzchołków zawiera współrzędne. Dzięki temu można łatwo stwierdzić, które wielokąty mają wspólne wierzchołki, także przekształcenia obiektu są szybsze, ponieważ wspólne wierzchołki są przekształcane tylko jeden raz. Reprezentacja ta pozwala na znaczne oszczędzenie pamięci wymaganej do zapamiętania siatki, ponieważ najczęściej jeden wierzchołek jest wspólny dla wielu wielokątów.
  3. Tablica wielokątów ze wskaźnikami na krawędzie — obiekt jest reprezentowany przez trzy tablice: wielokątów, krawędzi i wierzchołków. Każdy wielokąt przechowuję listę indeksów do tablicy krawędzi, natomiast każda krawędź przechowuję parę indeksów do tablicy wierzchołków. Dzięki temu można łatwo stwierdzić, które krawędzie są wspólne dla wierzchołków, ma to istotne znaczenie w dwóch przypadkach: modelowaniu CSG oraz symulacjach fizycznych. W obu zastosowaniach należy zagwarantować, że siatka wielokątów reprezentuje bryłę (zamyka pewną objętość), aby stwierdzenia punkt leży wewnątrz/na zewnątrz bryły miały sens. Mając listę krawędzi można to bardzo łatwo stwierdzić, jeśli bowiem każda krawędź należy do dokładnie dwóch wielokątów, to siatka jest bryłą. Jeśli istnieją krawędzie należące do pojedynczych wielokątów, wówczas w powierzchni bryły jest "dziura" i istnieją algorytmy, które potrafią takie "dziury" wypełnić. Jeśli natomiast jakaś krawędź należy do więcej niż dwóch wielokątów, wówczas siatka nie może reprezentować bryły.

Istnieją również rozwiązania hybrydowe, np. w których ze względu na efektywność wielokąty zawierają listę indeksów do tablicy krawędzi oraz listę indeksów do tablicy wierzchołków.

Zobacz też[edytuj | edytuj kod]