Jak wygładzić cieniowanie obiektu, zachowując jednocześnie ostre krawędzie?

Często napotykam problem posiadania siatki z częściami, które chciałbym wyrenderować na gładkich i „twardych” krawędziach łączących je.

Jak ustawić siatkę tak, aby pokazywała ostre krawędzie, ale wszystko inne wygładziło?

W przykładzie chciałbym, aby boki poszczególnych walców były gładkie, ale przecięcie a góra ma być ostra / płaska

płaska ustawiona na gładką

Komentarze

  • Dziękuję za odpowiedzi, myślę, że obie są naprawdę dobre w zależności od sytuacji.

Odpowiedź

Można to zrobić na kilka sposobów, ale najszybszym i najbardziej wydajnym (w tym przypadku tutaj) jest wygładzenie go w ten sam sposób, używając Shade Smooth , a następnie dodając do siatki modyfikator Edge Split .

Z wiki

Modyfikator EdgeSplit dzieli krawędzie w siatce. Krawędzie do podziału można określić na podstawie kąta krawędzi (tj. Kąta między ścianami tworzącymi tę krawędź) i / lub krawędzi oznaczonych jako ostre.

Podział krawędzi wpływa na normalne generowanie wierzchołka na tej krawędzi, dzięki czemu krawędź wydają się ostre. W związku z tym ten modyfikator może być użyty do uzyskania tego samego efektu, co przycisk Autosmooth, dzięki czemu krawędzie wydają się ostre, gdy ich kąt przekracza określony próg. Może być również używany do ręcznego sterowania procesem wygładzania, w którym użytkownik określa, które krawędzie powinny być gładkie lub ostre

Tutaj jest tak, jak masz powyżej ..

tutaj wprowadź opis obrazu

Po dodaniu modyfikatora

tutaj wprowadź opis obrazu

Dodatkowo możesz zobaczyć więcej wskazówek tutaj , jak uzyskać dobrą jakość modeli o twardej powierzchni . BlenderCookie ma samouczek ( zarchiwizowany ) na temat uzyskiwania ładnych, ostrych krawędzi.

Odpowiedź

Chociaż to, co mówi iKlsR, jest rzeczywiście najbardziej wydajne, często preferowane jest albo dodanie pętli krawędziowych po obu stronach twardej krawędzi, lub ukosuj go ( Ctrl + B ). Wygładzone cieniowanie daje bardziej realistyczną powierzchnię, ponieważ w rzeczywistości rzadko ma naprawdę ostre rogi, a także ładnie wyłapuje lustrzane światła lepiej pokazać model.

Skośny narożnik z siatką krawędziową

Zbliżenie

Zauważ, że modyfikator Podział krawędzi nie powinien być używany podczas fazowania lub używania pętli do wyostrzania rogów. Podział krawędzi fizycznie tnie model, aby sfałszować ostry narożnik, podczas gdy fazowanie w rzeczywistości tworzy róg.

Komentarze

  • Warto wspomnieć czytelnikowi, że modyfikacja EdgeSplit Operacje r i fazowanie nie wykluczają się wzajemnie. Wykonywanie ręcznych faz pomaga pokierować przejściem od gładkiego do płaskiego w tych sekcjach, w których EdgeSplit tworzy nienaturalnie gwałtowne przejścia.
  • Dla każdego, kto jest naprawdę nowy w Blenderze – Bevel to modyfikator. Poszukaj go tam.

Odpowiedź

Na dzień to zatwierdzenie ( będzie w blenderze 2.71 ), blender obsługuje split normals.

To jest w zasadzie jak stare Autosmooth , ale działa w Cycles i widocznym obszarze oprócz BI.

Jeśli nie wiem, czym jest Autosmooth, zachowuje się jak modyfikator podziału krawędzi, ale bez podziału na krawędzie:

tutaj wprowadź opis obrazu

Tam na powyższym zrzucie ekranu nie zastosowano modyfikatora podziału krawędzi.

Komentarze

  • To jest niesamowite. Naprawiono wszystkie moje problemy z cieniowaniem spowodowane zagnieceniami w subdiv / 1.0 od razu.
  • To właściwie powinna być najlepsza odpowiedź, czy zaakceptowana odpowiedź powinna zostać zaktualizowana.
  • od wersji 2.80, czy to działa również z Eevee?
  • @Luciano tak, powinno. Ustawienie jest w tym samym miejscu, co iirc

Odpowiedź

Kolejną rzeczą, którą możesz zrobić, jest – W trybie edycji naciśnij W i masz Shade Flat i Shade Smooth Możesz po prostu zaznaczyć części obiektu, które mają być gładkie i nacisnąć Shade Smooth .

tutaj wprowadź opis obrazu

W wersji 2.8+ jest to dostępne zarówno w trybie edycji , jak i trybie obiektowym Kliknij prawym przyciskiem myszy menu kontekstowe.

Odpowiedź

Prawdopodobnie następującą metodą jest najlepiej w czasie rzeczywistym (np. gry), aw szczególności prace typu low-poly.

Gandalf3 wspomniał o nowej funkcji Autosmooth , ale chciałbym dodać ją, gdy jest włączona, możesz ręcznie wybrać powierzchnie, krawędzie i wierzchołki, które chcesz, aby były twarde – ustawienie Autosmooth „Angle” tworzy jedynie podstawowe wygładzanie do pracy. Jeśli następnie przejdziesz do trybu edycji i spojrzysz w Cieniowanie / UVs> Cieniowanie , istnieją opcje zaznaczania wierzchołków, krawędzi i ścian. Przy wyłączonej funkcji Autosmooth widać krawędzie / wierzchołki, które zaznaczyłeś, ale nie będą renderowane płasko, ale po włączeniu Autosmooth będą renderowane poprawnie.

Autosmooth: ręczne oznaczanie

Jak Gandalf3 wspomina, w przeciwieństwie do modyfikatora podzielonych krawędzi, Autosmooth nie dzieli fizycznie elementów w celu uzyskania ostrego oświetlenia krawędzi, więc jest idealny do pracy z niską poliuretaną i wydaje się być zaprojektowany dla lepszej kompatybilności z formatami FBX i OBJ, które są powszechnie używanew grach.

Odpowiedz

Innym prostym sposobem na to jest wybranie twarzy, które chcesz wygładzić (w tym przypadku powierzchnie niepoziome) i wybierz Cieniowanie: Gładkie w panelu narzędzi. Następnie wybierz twarze, które chcesz ostre (w tym przypadku powierzchnie poziome) i wybierz Cieniowanie: płaskie .

Prawdopodobnie nie da to tak dobrych wyników jak metoda Grega , ale może być szybsza i prostsza.

Komentarze

  • To jest przydatną metodą, jeśli potrzebujesz siatki lowpoly do importu np. do Unity. Po prostu upewnij się, że importujesz styczne.
  • @NoviceInDisguise Wydaje mi się, że działa dobrze w wersji 2.73: i.stack.imgur.com/4XqVR.png

Odpowiedź

Aby wypełnić:

Pierwsza i oryginalna metoda osiągnięcia tego wciąż istnieje: Autosmooth . Działa jak Podział krawędzi ustawiony na Kąt krawędzi . Wadą jest to, że efekt nie jest widoczny w widoku. Modyfikator jest teraz nieco lepszy.

tutaj wprowadź opis obrazu

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *