13.08.2020, 20:26
(Ten post był ostatnio modyfikowany: 13.08.2020, 20:39 przez Ajgor.)
RE: Jak działa grafika komputerowa 3D i jaka jest za nią matematyka?
Temat na sporą książkę

Wireframe to nie jest rodzaj grafiki, tylko sposób jej wyświetlania.
Generalnie są trzy rodzaje grafiki 3D (jeśli można to tak określić). Wszystkie zaczynają się od tego, że istnieje hipotetyczny matematyczny układ współrzędnych posiadający trzy osie - x, y, z, czyli położenie w poziomie (od lewej do prawej), w pionie (od dołu do góry), i w głębi (od tyłu, do przodu) - to tak w wielkim uproszczeniu.
Najprostszy rodzaj grafiki 3D - to jest grafika typu Poly. Każda figura składa się z wierzchołków. Każdy wierzchołek ma współrzędne x, y i z. Wystarczy w programie przechować te współrzędne każdego wierzchołka (nie tylko tych widocznych z przodu, ale też z tyłu) , a następnie rysując grafikę (renderując, czyli w wielkim uproszczeniu rzutując na płaszczyznę, czyli na ekran), przeliczamy położenie każdego wierzchołka z trzech wymiarów na dwa, z uwzględnieniem kąta patrzenia. Robi się to przy pomocy wzorów będących przekształceniami wzorów trygonometrycznych. Wzory dodają połączenia wierzchołków, czyli krawędzie, a następnie połączenia krawędzi, czyli powierzchnie. Rysując obraz pamiętamy, że jest on rysowany piksel po pikselu od góry do dołu, lewej strony do prawej. Wystarczy według wzorów w odpowiednim momencie zmienić kolor rysowania, i pojawi się figura. Brzmi to o wiele bardziej skomplikowanie, niż jest w rzeczywistości. Ale figury mają jedną wadę - są zawsze kanciaste. Nie można zrobić płynnie zakrzywionych powierzchni. Natomiast mają jedną zaletę - masz zawsze pełną kontrolę nad kształtem. Nic Ci nie ucieknie w bok.
Drugi rodzaj, to jest grafika NURBS. To jest o wiele trudniejsza sprawa, bo figura nie jest rysowana w sposób prosty jako połączenie wierzchołków, tylko składa się z krzywych wyliczanych matematycznie. Każda krzywa to jest inny wzór. Dlatego bardzo trudno nad nimi zapanować, i często są bardzo nieposłuszne

To jest ich największa wada. Zaletą tego rodzaju jest to, że można robić dowolnie wygięte powierzchnie, i zawsze będą one płynnie się wyginać.
Trzeci rodzaj jest najciekawszy - posiada zalety dwóch poprzednich, a nie ma ich wad. Chociaż trudno wytłumaczyć na czym polega. Metoda nazywa się Subdivision Surfaces. Tworzy się figurę tak, jak w grafice Poly, następnie wylicza średnie położenie poszczególnych punktów na powierzchni tak, że one się do siebie zbliżają, tworząc wykrzywione powierzchnie. Masz pełną kontrolę jak w Poly, i gładko wygięte powierzchnie jak w NURBS. Do tego dochodzi tak zwane cieniowanie Gourauda - polegające na interpolacji jasności, czyli każda powierzchnia im bliżej krawędzi, tym bardziej kolorem zbliża się do powierzchni sąsiedniej. Na styku dwóch powierzchni mają one ten sam kolor, więc "zlewają się" w całość. To tworzy złudzenie ciągłej, zakrzywionej powierzchni. Najprostszy przykład - jak stworzysz regularny sześcian Poly, nałożysz na niego Subdivision Surfaces (czyli wyliczanie średniego położenia sąsiednich pikseli), i dodasz cieniowanie Gourauda, to otrzymasz idealną kulę. Jest to aktualnie najczęściej używana metoda tworzenia grafiki 3D we wszystkich programach do takiej grafiki.
To tak w WIELKIM skrócie, bo można by napisać osobny artykuł na temat materiałów, oświetlenia (samo oświetlenie to jest temat na wiele książek). itd itd itd
Aha. Wireframe polega na tym, że wyświetla się wierzchołki, i łączące ja krawędzie, a nie wyświetla się powierzchni, czyli widzisz coś, jak by klatkę zamiast pełnego obiektu. Fachowo mówi się na to: siatka
Pozdrawiam.
Ajgor