Jak wygenerować normalne powierzchnie?

9

W moim silniku mam kilka metod rysowania debugowania, które mogą generować geometrię przydatną do debugowania, np. Kule i kostki.

W tej chwili nie generuję żadnych normalnych dla tych kształtów. Czy istnieje metoda ogólnego przeznaczenia do generowania normalnych twarzy i normalnych dla wierzchołków dla dowolnej siatki? (Wyobrażam sobie, że potrzebujesz normalnych twarzy do generowania na normalne wierzchołki?)

Cubed2D
źródło

Odpowiedzi:

12

Aby wygenerować normalne ściany, użyj iloczynu wektorowego dwóch krawędzi każdego trójkąta, a następnie znormalizuj wynik. Upewnij się, że poprawnie podałeś wskazówki, w przeciwnym razie niektóre normalne wskażą, a niektóre wskażą.

Normalne wierzchołki byłyby wówczas interpolacją wszystkich normalnych twarzy, do których dołączony jest wierzchołek.

Skizz
źródło
Masz na myśli znormalizowaną interpolację (lub po prostu znormalizowane podsumowanie), prawdopodobnie;)
Andrew Russell
3
Zawsze dokonuj renormalizacji po zsumowaniu! Nawet jeśli interpolujesz ze znormalizowanych wektorów, wynik NIE jest znormalizowany!
Bob Somers