10. Powierzchnie typu subdivision

Tworzenie powierzchni metodami typu subdivision ma najkrótszą historię w dziedzinie obrazowania, jakkolwiek zasady podpodziałów wywodzą się z zaprezentowanego w rozdziale 8 algorytmu de Casteljau. Dopiero jednak lata 90-te ub. stulecia stworzyły podstawy do użycia nowych matematycznych teorii w dziedzinie produkcji pełnometrażowych filmów animowanych, z których pierwszym był film Toy Story zrealizowany w studiu Pixar. Metody typu subdivision pozwoliły bowiem na znacznie większą elastyczność podczas modelowania, niż powierzchnie NURBS, które zdefiniowane są siatką regularną i wszelkie modyfikacje siatki wierzchołków kontrolnych (np. zwiększanie liczby wierzchołków) muszą się odbywać w odniesieniu do całych wierszy bądź kolumn siatki (co łatwo sprawdzić na aplecie z poprzedniego segmentu, obrazującym modelowanie powierzchni NURBS). Powierzchnie typu subdivision również definiowane są siatką wierzchołków (ale nie są to wierzchołki kontrolne), która może być o dowolnej, nieregularnej strukturze i którą można w dowolny sposób iteracyjnie zagęszczać, i to zagęszczać lokalnie, zmierzając do pożądanego kształtu.

 

Zasadę definiowania powierzchni metodą podpodziałów znakomicie obrazują animowane gif-y zamieszczone na stronach:

https://pixelandpoly.com/graphics/referenceimages/bay_natash_build_2.gif

https://pixelandpoly.com/graphics/referenceimages/bay_natash_build_3.gif .

oraz następujący rysunek:

 

 

Spośród szeregu algorytmów opracowanych podpodziałów na Rys. 88 przedstawiono jeden z najbardziej typowych:

 

Rysunek 89. Metoda Catmulla-Clarka.

 

Zasada ta odnosi się do wszelkich siatek przestrzennych. W odniesieniu do prostej siatki 2D można ją opisać następująco:

  • nowy wierzchołek, oznaczony kolorem czerwonym, powstaje ze "starych" wierzchołków siatki, którym przypisuje się wagi, jak podano liczbowo.
  • następnie, w zależności od nowych i starych wierzchołków, modyfikuje się stare wierzchołki, oznaczone kolorem niebieskim. Wartość k jest liczbą krawędzi siatki zbiegających się w danym wierzchołku.

Rysunek 90. Zasada podpodziałów powierzchni w metodzie Catmulla-Clarka. Początkowe trójkąty zostają zamienione na czworokąty i cały dalszy proces przebiega tylko na siatkach czworokątów.

 

Powierzchnie subdivision reprezentowane są jak widać siatką ścian. Algorytm Catmulla-Clarka należy do tych algorytmów, gdzie struktura half-edge ma wyjątkowe uzasadnienie ze względu na to, że dzięki niej cały obieg krawędzi w wierzchołku zapisuje się bardzo zwięźle i wykonuje niezwykle szybko, co daje radykalną poprawę efektywności w stosunku do prostszych struktur danych.

Rysunek 91. Tylko obszary w narożach, zaznaczone na niebiesko, nie pokrywają się z powierzchniami  B-sklejanymi i nie mają zachowanej ciągłości G2 z sąsiednimi powierzchniami.

 

Metoda Catmulla-Clarka we wszystkich regularnych obszarach siatki jest zbieżna do bikubicznych powierzchni B-sklejanych, natomiast daje inne wyniki w tych obszarach, gdzie liczba krawędzi siatki zbiegających się w wierzchołku jest różna od czterech. Na Rys. 92 zamieszczono poglądowy przykład modelowania powierzchni metodą podpodziałów,  zrealizowany z użyciem modelera Blender.

 

Rysunek 92. Metoda Catmulla-Clarka w Blenderze: krok 0, 1 , 2 i 4 algorytmu.

Inne algorytmy zdefiniowane są dla siatek trójkątów. Należy do nich algorytm opracowany przez C. Loopa oraz tzw. algorytm Butterfly:

Rysunek 93. Zasada podpodziałów w metodzie zwanej Butterfly. Nowy wierzchołek x powstaje ze "starych" wierzchołków siatki zgodnie z podanym wzorem.

Zasadniczym problemem, nad którym pracują obecnie matematycy, jest opracowanie zasad dokładnego wykonywania na nich operacji takich jak wyznaczanie wektorów normalnych, przecięć powierzchni itp. - mimo że nie mają one skończonej postaci opisu matematycznego, jak powierzchnie NURBS, a tylko są definiowane jako granica nieskończonej ilości podpodziałów. Wówczas powierzchnie typu "subdivision" nie tylko znajdą swoje miejsce również w systemach CAD/CAM obok powierzchni NURBS, jak to się już właśnie stopniowo dokonuje, ale być może je po prostu zastąpią jako ich uogólnienie. 

Rysunek 94. Porównanie powierzchni NURBS i powierzchni „subdivision” zdefiniowanych sześcienną siatką wierzchołków