Co oznacza wokselizacja „6-separacyjna” i „26-separacyjna”?

11

Czytałem ten artykuł o Voxelpipe, bibliotece do wokselizacji firmy NVIDIA i w sekcji 2 Wokselizacja znalazłem terminy 6-separacyjne i 26-separacyjne

Znalazłem tę stronę internetową, która próbuje wyjaśnić podstawowe idee wokselizacji, ale zrozumienie wspomnianych terminów nie było zbyt pomocne.

Czy ktoś może wyjaśnić lub wskazać na inne zasoby, które mogą pomóc mi zrozumieć?

BRabbit27
źródło

Odpowiedzi:

17

Warunki dotyczą „grubości” wokselizacji. Zilustruję za pomocą diagramu dotyczącego rasteryzacji linii 2D (z tego niezwiązanego pytania ).

wprowadź opis zdjęcia tutaj

Po prawej stronie znajduje się typowa rasteryzacja linii: algorytm znajduje jeden piksel najbliższy linii w każdym rzędzie (lub kolumnie, w zależności od nachylenia). W ten sposób powstaje coś, co zwykle nazywamy linią „o grubości 1 piksela”. Po lewej stronie znajduje się konserwatywna rasteryzacja, która znajduje każdy piksel, którego prostokąt dotyka linia, i tworzy grubszą linię.

Wokselizacja 6-separacyjna jest jak cienka linia po prawej, a 26-separacja jest jak cienka linia po lewej, ale w 3D. Jeśli wyobrażasz sobie, że linia jest w rzeczywistości trójkątem oglądanym na krawędzi, jest to analogiczne do tego, jak wyglądałaby wokselizacja.

Różne typy wokalizacji mogą być lepsze w zależności od tego, co zrobisz z danymi wokalizacji później. Jeśli używasz wokseli jako hierarchii przestrzennej do znajdowania trójkątów, które przecinają dany region, prawdopodobnie potrzebujesz gęstego wokselowania, ponieważ jest konserwatywny. Grube wokselowanie może być również lepsze do marszowania promieniowego, ponieważ cienkie wokselowanie może zostać pominięte przez promień diagonalny. Z drugiej strony, cienkie wokselowanie jest bardziej wiernym odwzorowaniem pierwotnej powierzchni, co prawdopodobnie lepiej sprawdza się w testach widoczności, wykrywaniu kolizji, symulacji płynów i tym podobnych.

Terminologia „n-separująca” jest trochę niefortunna, ale o to chodzi. Wyobraź sobie, że wykonujesz wypełnienie 3D w siatce wokseli, ale w wypełnieniu obserwujesz tylko 6 bezpośrednich sąsiadów każdego woksela (± 1 krok wzdłuż każdej osi). Wtedy „cienkie” wokselowanie zatrzyma wypełnienie zalewowe: wystarczy rozdzielić dwie strony powierzchni, jeśli weźmie się pod uwagę tylko 6 sąsiadów. Z drugiej strony, załóżmy, że twoje wypełnienie powodziowe mogło również dotrzeć do ukośnych sąsiadów - 26 sąsiadów w ogóle (3 × 3 × 3 sąsiedztwo wokseli). Wówczas wokselizacja 6-separacyjna nie zatrzymałaby wypełnienia powodziowego, ale 26-separacyjna (gruba) zrobiłaby to.

Nathan Reed
źródło
Miły ! Twoje wyjaśnienie daje mi intuicję. Czy zdarza ci się mieć jakieś źródła, z których mogę przeczytać więcej o rasteryzacji? Przypuszczam, że ten n-separujący materiał pochodzi z 2D, gdzie jest łatwiejszy do zrozumienia, a potem mogę więcej myśleć, aby zrozumieć separację 6- i 26 w 3D.
BRabbit27,
1
@ BRabbit27 Nie sądzę, aby terminologia „rozdzielająca n” była używana w rasteryzacji 2D; Widziałem to tylko podczas omawiania wokselizacji. Odnosi się tylko do liczby sąsiadów. Dodam trochę do odpowiedzi na ten temat.
Nathan Reed,