Próbuję zrozumieć, dlaczego siatki wygładzone w studiu 3D (modyfikatory / wygładzacz) mają taką samą liczbę wierzchołków / ścian przed lub po tym procesie, a także dokładnie tę samą geometrię.
W poniższym przykładzie obie siatki mają 32 wierzchołki i 60 ścian.
Chociaż mam doświadczenie w programowaniu (c ++ i c #), jestem całkiem początkującym w grafice komputerowej. Tak więc oczekiwałem, że wygładzony wygląd wygładzonej siatki będzie wymagał dodatkowych wierzchołków, tj. Podziału trójkątów, aby uzyskać bardziej szczegółową siatkę końcową. Wydaje się jednak, że tak nie jest.
Dlatego pytam:
1) w jaki sposób możliwe jest wygładzenie bez zwiększania szczegółów geometrii siatki?
2) czy wygładzanie przynajmniej zwiększa pamięć przydzieloną / wykorzystaną do przechowywania nowej siatki w porównaniu do pierwotnej?
Wyjaśnienia są bardzo mile widziane, ale docenia się także odniesienia (akademickie lub nie).
Odpowiedzi:
Gładka w tym przypadku powoduje, że normalne powierzchnie w wierzchołkach wskazują w ten sam sposób, gdy interpolowane wyglądają gładko. Meshsmooth dodałby wierzchołki.
1) w jaki sposób możliwe jest wygładzenie bez zwiększania szczegółów geometrii siatki?
Ludzkie oczy właściwie nie widzą krzywizny, z wyjątkiem krawędzi obiektów. Wszystko, co mogą zrobić, to przybliżyć gładkość i przetworzyć nachylenie gradientu. Posiadanie ciągłego pola daje wrażenie gładkości. Oko jest jednak wyjątkowo wrażliwe na nagłe zmiany koloru i interpretuje to jako twardą zmarszczkę.
Interpolując normalne wierzchołki, twoja powierzchnia będzie wyglądać na płynnie płynącą. Ponieważ ta normalna jest używana do obliczania końcowego odbijanego koloru, otrzymujesz gładkie pole koloru.
Zdjęcie 1 : płaska cieniowana normalna w porównaniu do normalnych płynnej interplacji. Czarny normalny leży na wierzchołku. Kolorowe są interpolowane.
Nic nie mówi, że potrzebujemy interpolacji liniowej. W rzeczywistości, zaburzając normalne, możemy spowodować zmianę wyglądu płaskiej powierzchni. Tak działa mapowanie wypukłości i normalne mapowanie. Efekt może być przekonujący, chyba że krawędź powierzchni odgrywa zbyt dużą rolę w miejscu, w którym zrywa się iluzja.
Zdjęcie 2 : płaska cieniowana powierzchnia (tył), gładko cieniowany (środek) i odwzorowana gładka normalna. Złudzenie falistej powierzchni pęka, ponieważ krawędź odgrywa tak znaczącą rolę w obrazie, że zamiast tego można zwiększyć normalne
2) czy wygładzanie przynajmniej zwiększa przydzieloną pamięć?
Trudno powiedzieć ostateczne rzeczy na temat silnika graficznego. Normalne i tak muszą zostać wysłane na kartę graficzną, najprawdopodobniej dane te są buforowane, ale można je obliczyć w locie (w obu przypadkach).
Ponieważ Max używa grup wygładzających, wydaje mi się, że użycie pamięci jest stałe niezależnie od tego. Trudno powiedzieć, nawet jeśli nie jest przechowywany w pamięci podręcznej, nie zrobiłoby to dużej różnicy. To sprawia, że moduł cieniujący jest trochę bardziej skomplikowany, ale tylko najprawdopodobniej ta złożoność jest obecna, użyj go lub nie.
źródło