2011-07-17

Intersekcja promienia z obiektami - możliwe problemy

Promień pada na powierzchnię i odbija się od niej. Podczas wykrywania nowej intersekcji wykrywamy ją z obiektem od którego się odbiliśmy co gorsza dokładnie w tym samym punkcie. Przyczyną są niedokładności obliczeniowe.

Istnieją dwa sposoby radzenia sobie z sytuacją. W pierwszym przesuwamy punkt startu promienia odbitego wzdłuż jego kierunku o niewielką wartość, która pozwala nam przezwyciężyć błąd obliczeniowy. Ale równocześnie jeśli nasza powierzchnia jest wypukła może się zdarzyć, że promień przejdzie na drugą stronę powierzchni. Poza tym ustalenie wartości przesunięcia też jest dosyć problematyczne. Musi być ściśle zgrane z odstępami pomiędzy obiektami i ich wymiarami. Wymiary obiektów ani odstępy pomiędzy nimi nie mogą być mniejsze niż pewna graniczna wartość tego przesunięcia. Samo przesunięcie musi być większe niż błąd obliczeniowy i tutaj jest też duży problem jeśli chcemy by wartość ta była naprawdę minimalna.

W drugiej metodzie pamiętamy w co i z której strony ostatnio uderzyliśmy. Dzięki temu dokładnie kontrolujemy sytuację. Jeśli uderzenie nastąpiło z zewnątrz to ignorujemy wszelkie ponowne kolizje z obiektem. Jeśli od wewnątrz to dopuszczamy ponowną kolizję z tym samym obiektem. Dużo większy problem mamy wtedy gdy nasza powierzchnia opisana jakimś wzorem matematycznym będzie dużo bardziej skomplikowana niż np. sfera. Wtedy prawdopodobnie trzeba się jednak zacząć posiłkować jakimś minimalnym przesunięciem pomiędzy dwoma punktami uderzenia.

Zupełnie osobnym problemem jest sytuacja gdy dwa np. trójkąty przystają do siebie. Promień pada blisko boku przystającego w trójkąt 1, odbija się i wykrywana jest kolizja z trójkątem 2. Dystans jest wtedy bardzo mały, na granicy błędu obliczeniowego i na podstawie tego powinniśmy taką intersekcję odrzucać.

Brak komentarzy:

Prześlij komentarz