2011-09-22 11 views
6

Z powodzeniem używam szumu Perlin do generowania terenu, chmur i kilku innych fajnych rzeczy. Jednak teraz próbuję ożywić grupę latających owadów (szczególnie świetliki), a także zasugerowano mi użycie tego dźwięku w Perlin. Jednak nie jestem pewien, jak to zrobić.Hałas Perlin dla ruchu?

Pierwszą rzeczą, która przyszła mi do głowy było, biorąc pod uwagę map hałasu tak:

  1. przypisać każdej świetlika losową początkowe położenie, prędkość i przyspieszenie kątowe.
  2. Na kadrze, przesuń pozycję lotu zgodnie z kierunkiem wektora.
  3. Odczytaj mapę hałasu w nowym miejscu i użyj jej do dostosowania przyspieszenia kątowego, powodując, że samolot "skręci" w kierunku jaśniejszych pikseli.
  4. Dostosuj przyspieszenie kątowe ponownie, w pobliżu innych much, aby uniknąć ich skupienia wokół lokalnych maksimów.

Nie dotyczy to jednak przypadków, w których muchy docierają do krawędzi mapy lub przypadków, w których mogą się skończyć, okrążając tylko jeden punkt. Drugi przypadek może nie być wielkim problemem, ale nie jestem pewien niezawodnego sposobu, aby je obrócić, aby uniknąć kolizji z krawędzią mapy.

Sugestie? Poradniki lub dokumenty (w języku angielskim, proszę)?

Odpowiedz

6

Oto bardzo dobre źródło hałasu szumu 2D. Możesz postępować zgodnie z tymi samymi zasadami, ale zamiast tworzyć siatkę 2D gradientów, możesz utworzyć tablicę gradientów 1D. Możesz użyć tego, aby stworzyć swój hałas dla konkretnej osi.

Po prostu zastosuj się do tego przepisu i możesz stworzyć podobne funkcje szumu perlinowego dla każdej z pozostałych osi! Połącz te ruchy i powinieneś mieć dobry dźwięk na rękach. (Można również korzystać z tych funkcji hałas jako losowych accellerations lub prędkości. Ponieważ funkcja szumu Perlin jest monotonna globalnie, swoje muchy nie będzie rakieta się do szalonych dystansach.)

http://webstaff.itn.liu.se/~stegu/TNM022-2005/perlinnoiselinks/perlin-noise-math-faq.html

Jeśli jesteś ciekawy temat inne rodzaje ruchu, sugerowałbym ruch Browna. Jest to ten sam rodzaj ruchu, który cząstki pyłu wykazują, gdy poruszają się w twoim pokoju. Ten artykuł staje się bardziej interesującą matematyką na końcu, ale jeśli w ogóle znasz Matlab, pierwsze kilka zestawów instrukcji powinno być całkiem łatwe do zrozumienia. Jeśli nie, po prostu użyj funkcji Google i znajdź ich natywne odpowiedniki dla swojego środowiska (lub twórz je sam!) To będzie trochę bardziej realistyczny i znacznie szybciej niż obliczenia Perlin hałasu

http://lben.epfl.ch/files/content/sites/lben/files/users/179705/Simulating%20Brownian%20Motion.pdf

okazji latania!

+0

Ten niezręczny moment, kiedy odpowiadasz na pytanie roczne. – Peaches491

+0

To dobra odpowiedź. Lepsze niż to, co zrobiłem, i przydadzą się w przyszłości. Dzięki. –

1

Może szukasz boids?

Wikipedia page

To nie dysponują Perlin hałasu w pierwotnej koncepcji, może można użyć do generowania hałasu atraktory lub repulsory, jak starasz się zrobić z „latać do lżejszej” zachowania.

PS: na powyższej stronie znajduje się powiązany link do Firefly algorithm, może zainteresuje Cię to?

+0

Widziałem algorytm firefly (dobrze nazwany, aby ułatwić googling), ale również szukał czegoś mniej, mniej specyficznego dla muszli. Popatrzę na boidy. –

+0

Naprawdę fajnie jest robić symulacje typu flock, czy to ptaki, ryby itp. ... jeśli chcesz uniknąć kolizji. Jeśli chcesz czegoś, co wydaje ci się chaotyczne, tzn. Nie wszystkie elementy zmierzają w kierunku zunifikowanego kierunku, możesz po prostu ustawić na zerowy wpływ siły "spójności". – jv42