Skocz do zawartości

Featured Replies

Napisano

Mam problem ze skryptem, otóż utworzyłem sobie jakiś "teren", rzutowałem na niego splajna i teraz chciałbym wokół tego splajna, ale na terenie rozsypac powiedzmy cylindy skierowane w kierunku wektora normalnego face'a, na którym będzie siedział. Wydawałoby się, że wszystko działa jak należy:

M1a2f.jpg

 

 

 

Problem pojawił się, gdy za pomocą narzędzia skalowania spłaszczyłem sobie teren wraz z leżącym na nim splajnem. Punkty wyznaczane są poprawnie, jednak kierunki wektorów normalnych nie:

 

CboEc.jpg

 

 

 

Wyznaczanie wektora kierunku cylindra jest z funkcji intersectRay(), która tworzy "ray", czyli punkt na terenie i wektor normalny, jednak jak widać niepoprawny w sytuacji, gdy skala terenu jest zmieniona. Wydawało mi się, że jeśli otrzymany wektor ray.direction podzielę przez wektor teren.scale powinienem dostać poprawny wektor normalny, jednak myliłem się i już nie mam pomysłu jak to rozwiązać. Proszę o pomoc

  • Odpowiedzi 7
  • Wyświetleń 2,2k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

No to: intersectRay()*scale.X*scale.Y*scale.Z i powinno działać :)

 

Wytłumaczenie czemu tak zrobić będzie gorsze, bo nie jestem pewien a przychodzą mi do głowy 2. rzeczy:

-intersectRay liczy normale zanim jest zmieniona skala

-intersectRay jest liczy je dla poszczególnego modyfikatora a nie obiektu

-przy skali zmieniły się normalne ale nie zmieniły się ich długość

Edytowane przez legomir

Napisano

No ale to by nie miało sensu bo skrypt ogólnie by w każdej takie sytuacji nie działał ;) A dodawanie nowego polecenia jest wolniejsze o pomnożenia przez zmienne globalne

Napisano
  • Autor

ResetXForm pomogło, własnie tego szukałem, dzięki wielkie :) Chociaż do teraz nie wiem dlaczego dzielenie przez wektor skali nie działa poprawnie, z mnożeniem to już w ogóle beznadzieja - jeśli wypłaszczę teren, wektor skali będzie wyglądał mniej więcej tak [1,1,0.1], a cylindry mam położone na płasko, znaczy, żei wektor kierunku jest "zbyt mało w górę", przemnożenie przez wektor skali jeszcze bardziej go zmniejszy, a wydawałoby się że podzielenie załatwi sprawę... No cóż, ważne, że działa :)

Napisano

Eee... dobra za dużo się ostatnio naczytałem o tym wszystkim i mi się majta w te i we wte :P

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności