Skocz do zawartości

Problem z FluidSim


ZjedzKota

Rekomendowane odpowiedzi

Witam

 

Od tygodnia pracuję nad animacją, która ma będzie wyświetlona na pewnym konkursie, i do tej pory szło mi dobrze, ale utknąłem w scenie z "fabryką".

 

Mój problem polega na tym, że absolutnie nie rozumiem fluid-simulation. Przeglądałem już chyba wszystkie tutoriale na ten temat i coś nawet wychodziło, ale zawsze miałem problemy.

Otóż chce nalać płyn z umownej dyszy, którą zaznaczyłem strzałką do pojemniczka poniżej. Będę wdzięczny za każdą pomoc :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 49
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Dac, ty nie mówisz tego poważnie nie?

 

W moich testach symulacja się udawała, problem w tym że nie umiem tej cieczy skierować do tego pojemniczka

 

No pewnie się udawała ale jakie miałeś ustawienia? Zrób jakiś drobny rozbryzg o rozdzielczości np. 200 i porównaj do zdjęcia takiego rozbryzgu a wtedy zobaczysz jaki ten symulowany jest niedokładny. Do 500 rozdzielczości to jest tylko zabawa, a realistyczne wyniki są przy około 1000. Rzeki ani oceanu wogóle nie zasymulujesz. U mnie przy rozdziałce 100 Blender połyka dodatkowe 2 GB w czasie obliczeń - Blender 64 bitowy.

Odnośnik do komentarza
Udostępnij na innych stronach

@mookie

W jakim sensie wariackie. Jeśli mają być kropelki wody to poniżej 200 będą gigantyczne. Przecież w tym pojemniku to pewnie z litr wody się mieści. Jeżeli kropla ma średnicę od 2 mm do 6 mm to przy 40 cm wysokości daje rozdziałkę od 40/0.2 = 400! Więc przy domyślnych ustawieniach (50) kropla ma prawie centymetr średnicy. Trzeba zapomnieć o realiźmie albo dać na tyle gęsty i kleisty płyn żeby nie było kropel.

Odnośnik do komentarza
Udostępnij na innych stronach

@mookie: dziękuje za plik - problem rozwiązany (+rep)

 

@dac: nie wiem czy masz rację bo nie chce mi się sprawdzać, ale popatrz na obrazek który dodałem - chce tylko nalać płynu do małej kapsułki z malutkiej dyszy, nie z wodospadu, więc nie będzie tam zbytnio rozbryzgów, bo to by z kolei dziwnie wyglądało. Zresztą osoby które będą to oglądać nie mają kompletnego pojęcia o grafice i animacji, konkurs też nie jest kierowany bezpośrednio do grafików więc nikt nie będzie się zbytnio czepiać takich szczegółów.

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

To ile tam jest wysokości i jaki płyn. Jak jogurt to nie ma problemu nawet z ustawieniami domyślnymi będzie efekt. Natomiast olewanie widza bo się nie zna to błąd. Taki tym krytyczniej oceni bo nie zna ograniczeń jakie niesie ze sąbo technologia którą stosujemy.

Odnośnik do komentarza
Udostępnij na innych stronach

To będzie animacja o - jakby to ująć - złych wynalazkach ludzkości. Na ekranie pojawiać się będą różne hasła na czarnym tle, po czym będzie pojawiać się animacja powiązana z tym hasłem. W tym przypadku hasłem będzie "Bio Hazard", po czym pojawi się moja fabryka z tym nieszczęsnym płynem.

A olewanie widza "bo sie nie zna", to wg mnie nie błąd a ułatwianie sobie pracy i skracanie jej czasu, bo 12 lutego ma już być gotowa. Z drugiej strony nie jestem ekspertem w dziedzinie animacji i 3D, jak też napisałem wyżej Fluid Simulation sprawia mi olbrzymie kłopoty, więc jestem zadowolony z tego co wyjdzie.

Odnośnik do komentarza
Udostępnij na innych stronach

Moim zdaniem trzeba by poszukać kompromisu i albo zrób osobno samą wodę wpadającą do kształtu podobnego do pojemnika gdzie materiał pojemnika ustaw taki by nie było go widać i by nie rzucał cienia a potem wyrenderuj tak by wyszła sama woda z kanałem alfa i spróbuj podłożyć do animację na zasadzie jakiegoś montażu albo zrób ze zwykłych mesh-y + normal + displace (animowane) ...Fluid strasznie muli przy pełnej scenie a żeby efekt był dobry to trzeba gęstej siatki ...

Odnośnik do komentarza
Udostępnij na innych stronach

dac77: chodzi ci o to ze np czegos takiego sie nie da uzyskac na 50 ?

 

To jest dobra jakość? tak to można symulować płyn o objętości 0.5 litra, a te rozbryzgi nagle zatrzymane na niewidocznych ściankach bardzo dodają realizmu.

Odnośnik do komentarza
Udostępnij na innych stronach

wg mnie jeśli chodzi wlanie płynu do kubeczka to w zupełności taka jakość wystarcza.

wieksze rzeczy też się da symulować

kwestia doboru skali i ustawień,no chyba że chcesz nalewać z morza szklankę wody

nie znam/używam innych programów do symulacji wody, mógłbyś podać przykłady z lepszą jakością, które da się wygenerować na domowym kompie?

Odnośnik do komentarza
Udostępnij na innych stronach

wg mnie jeśli chodzi wlanie płynu do kubeczka to w zupełności taka jakość wystarcza.

wieksze rzeczy też się da symulować

kwestia doboru skali i ustawień,no chyba że chcesz nalewać z morza szklankę wody

nie znam/używam innych programów do symulacji wody, mógłbyś podać przykłady z lepszą jakością, które da się wygenerować na domowym kompie?

 

No ja nigdy nie mówiłem że Blender jest zły w symulacjach. Po prostu na prawdziwe symulacje potrzebujesz czasu na mainframe. Radzę jednak policzyć zużycie pamięci. Jeżeli macież 100x100x100 powoduje że program zużywa załużmy 1.5 GB RAM w czasie symulacji to stopieć wzrostu zużycia RAMu jest sześcienny więc przy 200x200x200 daje nam to 1.5GB x 8 = 12 GB, a 400x400x400 już 96 GB. Oczywiście wszystko zależy też od innych parametrów i przy pewnych prostych fluidach (niezbyt realistycznych) można generować nawet 200x200x200 na domowym komputerze ale trzeba wtedy dać dużo partykli które nie są zbyt poprawne fizycznie. Czasami lepiej odpuścić sobie symulację i zrobić opaque materiał niż pokazać słabą symulację.

Odnośnik do komentarza
Udostępnij na innych stronach

nie przesadzaj przy res 400 jest 6GB wiec na porządnym kompie da rade, jak nie to 300 ma 2,5GB.

różnie to bywa z przedstawianiem rzeczy w CG ale liczy się to aby efektem przekonać widza że jest ok :)

 

Ale rzeczywiście testowałeś te 400 czy tylko pisze w panelu że zużyje 6 GB. U mnie przy 100 res, 100 000 poly fluid, kilka obstacles Blender zajmuje ponad 70 % z 3 GB pamięci. Jak dam 200 to swapa wali przez 10 minut i wywala się.

Odnośnik do komentarza
Udostępnij na innych stronach

Niech zgadnę - 32 bity?

Przy 200 res 1.28gb pamięci na 64bit arch, blender 64bit

 

Jeżeli macież 100x100x100 powoduje że program zużywa załużmy 1.5 GB RAM

Co tu ma macieRZ do rzeczy? Nawet jeśli pominąć 3 wymiary w opisie macierzy (które są dwu wymiarowe) nie ma to nic do rzeczy. Jeśli mówisz o rozdzielczości domain ustawionej na 100 to zajmuje ~160MB (64bit system i blender).

Co do animacji jaką chce uzyskać autor wątku spokojnie wystarczy res 75 (z dobrze dobranym małym domain (jeśli chciałbyć użyć domain wielkości pokoju to faktycznie rozdzielczość 1000 będzie mało, ale domain wielkości szklanki to nawet 75 starczy z nadwyżką) i ustawieniami w zakładce advanced). Nie gadaj głupot, że trzeba 20GB ramu na taką pierdołę bo jesteś wtedy śmieszny... tym bardziej mówiąc o mainframe o których nie masz pojęcia, gdzie przeważnie na procesor przypada ~8gb ram (i każdy ma swoją kopię danych na których ma pracować)

Odnośnik do komentarza
Udostępnij na innych stronach

@Skoti

Skąd ty te mądrości bierzesz. Macierze mają dowolną ilośc wymiarów, a w fluidach mają 3. 160 MB to zajmują dane po symulacji a i to bez mesha. Ważne ile w czasie symulacji. Nigdy nie mówiłem że akurat w tym przypadku trzeba 20 GB ale jeśli w każdym kubeczku ma być woda to właśnie tyle wyjdzie. Może najpierw sprawdzisz swoje informacje zanim zaczniesz zaśmiecać wątki?

Odnośnik do komentarza
Udostępnij na innych stronach

hmmm a kropelek nie da się zrobić przez particle ? Pamiętam ze była taka funkcja we fluidach, która miała fakeować drobne krople.

 

Da się ale nadal potrzebna jest rozdzielczość macierzy gdyż particle tylko przenoszą "obecność" płynu. Zauważyłem że jak się zmniejszy rozdzielczość mesha płynu i ograniczy ilość obstacles to można ograniczyć zużycie pamięci nawet o 30 % bez utratyjakości.

Odnośnik do komentarza
Udostępnij na innych stronach

@Skoti

Skąd ty te mądrości bierzesz. Macierze mają dowolną ilośc wymiarów, a w fluidach mają 3. 160 MB to zajmują dane po symulacji a i to bez mesha. Ważne ile w czasie symulacji. Nigdy nie mówiłem że akurat w tym przypadku trzeba 20 GB ale jeśli w każdym kubeczku ma być woda to właśnie tyle wyjdzie. Może najpierw sprawdzisz swoje informacje zanim zaczniesz zaśmiecać wątki?

Z zajęć i wykładów algebry liniowej, oraz programowania grafiki 3d - przy symuacji fluidów są stosowane macierze ale 3x3 (obroty) lub 4x4 (przesunięcie, skalowanie i obroty) i wektory oraz kwaterniony (macierze jednowymiarowe) 3 i 4 elementowe.

Dane przechowywane z rozdzielczością N x N x N to zwykłe trójwymiarowe tablice danych i z macierzami nie mają nic wspólnego (i nie da się na nich, żadnych działań na macierzy robić).

160MB zajmuje w pamięci operacyjnej podczas liczenia - na dysku zajmuje dużo więcej, bo w przeciwieństwie do pamięci ram gdzie trzymane jest tylko klatka-1 i aktualnie liczona klatka muszą być zapisane wszystkie klatki obliczone wcześniej.

Skoro nie pamiętasz kiedy pisałeś, że w tym wypadku potrzeba 20gb to zobacz swój pierwszy post w odpowiedzi za pytanie o konkretny przypadek.

W każdym kubeczku pewnie ma być woda, ale po co mają być na raz przechowywane? Animacja jest ta sama więc wystarczy fluid w jednej szklance (to, że nie potrafisz rozwiązywać problemów nie oznacza, że nie da się ich rozwiązać i trzeba zwalać na za słaby sprzęt).

Odnośnik do komentarza
Udostępnij na innych stronach

Wiem że to już nie dotyczy FluidSimulation i powinienem takie pytanie zadać w Wip'ie, ale nie chce mi sie tworzyć nowego tematu by pytać o taką błahostkę. Zrezygnowałem w tej scenie z Fluidów na rzecz czegoś takiego:

1.jpg

 

Skoro ma to być fabryka jakichś biochemicznych specyfików, więc wydaje mi się że takie rozwiązanie jest dopuszczalne. Chce tylko wiedzieć, czy wygląda to przekonująco.

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

@Skoti

160 MB ???? Na studiach Ci tak powiedzieli???? Wracaj na swoje forum i nie trolluj tutaj.

Przeczytaj swój poprzedni post to się dowiesz co na studiach mi powiedzieli - dowiesz się o co pytałeś (matma) -, 160 MB powiedział mi profiler (ilość ramu zajmowanego przez blendera przed symulacją odjęta). Co do trolowania to oboje zdajemy sobie sprawę kto tu troluje - po prostu nie ośmieszaj się na przyszłość i nie zabieraj głosu w sprawach o których nie masz pojęcia.

Odnośnik do komentarza
Udostępnij na innych stronach

ZjedzKota - możesz to udoskonalić; póki co ciecz po prostu się pojawia, prawda? Zrób więc cylinder i nadaj mu materiał cieczy, po czym skaluj go w pionie, co da złudzenie rosnącego poziomu cieczy. Możesz nawet zanimować wlewany do niego płyn - również przez skalowany i przesuwany cylinder o materiale cieczy, wyłażący z kranika. Jeśli Ci bardzo zależy dodaj też cząstki imitujące rozbryzgi wody (akurat to się robi bardzo łatwo) i powinno wyjść naprawdę przyzwoicie.

Odnośnik do komentarza
Udostępnij na innych stronach

Jako że pan Skoti nie kwapi się dać żadnej rady pomimo swojej uniwersyteckiej wiedzy to ja coś poradzę z czym średnio zaawansowany użytkownik Blendera powinien sobie poradzić:

1. Kończymy animację bez fluidów, teksturki, materiały, pierdółki i render animacji, pamiętając o ograniczeniu odbić do minimum.

2. Dodajemy pierwszy fluid o takiej jakości na jaką pozwoli nam komputer, albo z fluidem albo z outflowem i z obstaclem. Generujemy i patrzymy czy jest git. Zaznaczamy border do renderu w okolicy gdzie ma być animacjia fluida i renderujemy animację ponownie do innego pliku. Potem na osobnym layerze dajemy plane tak żeby poruszał się zawsze przesłaniając ten fluid ale nie inne i renderujemy z niego animację z samą alphą tego planea.

3. Czyścimy symulację i ustawiamy dla drugiego fluida i to samo co w punkt 2.

4. GOTO 2 w zależności od ilości fluidów.

5. W nodach renderu wczytujemy animację bez fluidów i nakładamy na nią animacje cząstkowe z fluidami wykorzystując ich maski.

6. Cieszymy się i wiemy że Skoti nie miał racji.

Odnośnik do komentarza
Udostępnij na innych stronach

ZjedzKota: pierwsza fiolka nie zostaje zepchnięta :) a druga wygląda jakby była zrzucana na podłogę :) dorób jakieś prowadnice aby ładnie odjechała

 

dac77: pomyliłeś inflow z outflowem, no i rezygnacja z odbić nie jest za dobra. i nie rozumiem jaka jest różnica dla domain jeśli płyn nalejesz do jednej fiolki która idzie przez całą taśmę a jak nalewasz do kilku?

Odnośnik do komentarza
Udostępnij na innych stronach

@szczuro

Jeśli rozciągniesz domenę to albo będziesz miał gorszą jakość symulacji albo musisz zwiększyć rozdziałkę symulacji. Nawet w manualu Blednera piszą żeby możliwie zawężać zakres symulacji. Gdyby te fluidy ze sobą odziaływały to by się nie dało a tak spokojnie można robić. Komputer ma łatwiej - człowiek musi się napracować za niego.

 

Edit:

A chyba teraz rozumiem sens pytania. Jak się już zrobi symulację to można ją dowolnie przemieszczać w animacji, więc to nie jest tak że domena musi obejmować całą przestrzeń ostatecznej animacji.

Odnośnik do komentarza
Udostępnij na innych stronach

może narysuje (x onzacza że jest nalane) :) po co :

xoo

oxo

oox

 

jak można

xoo

xxo

xxx

 

a obie zajmuja ten sam domain, każde inne maskowanie jest wg mnie skazane na niepowodzenie z powodu ior pojemnika/płynu który zakrzywia to co jest za

Edytowane przez szczuro
Odnośnik do komentarza
Udostępnij na innych stronach

@szczuro

Jeśli rozciągniesz domenę to albo będziesz miał gorszą jakość symulacji albo musisz zwiększyć rozdziałkę symulacji. Nawet w manualu Blednera piszą żeby możliwie zawężać zakres symulacji. Gdyby te fluidy ze sobą odziaływały to by się nie dało a tak spokojnie można robić. Komputer ma łatwiej - człowiek musi się napracować za niego.

 

Edit:

A chyba teraz rozumiem sens pytania. Jak się już zrobi symulację to można ją dowolnie przemieszczać w animacji, więc to nie jest tak że domena musi obejmować całą przestrzeń ostatecznej animacji.

Tak wreszcie zrozumiałeś - nie musisz robić symulacji wszystkich fiolek, tylko jednej (i to tylko w jednym miejscu (przy nalewaniu - przed nalaniem nie ma fluidu więc tam nie musi być tam domain, po nalaniu animacja fluidu nie jest rzeczą niezbędną, więc może być po prostu przesuniętym domain (ostatnia klatka animacji fluidu to koniec wlewania się z inflow, a dalej przesuwasz normalnie szklankę już razem z domain) - więc nie musisz mieć wielkiego domain tylko na wielkość szklanki, przez co nie jest Ci potrzebna wielka rozdzielczość)).

Odnośnik do komentarza
Udostępnij na innych stronach

@ Skoti

No tak. Nadal jednak lepiej zrobić po kolei trzy animacje fluidu rżeby się różniły. Ktoś bardziej wścibski przyczepiłby się też zarówno do twojej i do mojej metody że płyn powinien się chuśtać przy ruszaniu, ale tego nie trzeba jeśli to nie jest profesjonalna robota. I tak będzie lepiej niż teraz.

Odnośnik do komentarza
Udostępnij na innych stronach

@ Skoti

No tak. Nadal jednak lepiej zrobić po kolei trzy animacje fluidu rżeby się różniły. Ktoś bardziej wścibski przyczepiłby się też zarówno do twojej i do mojej metody że płyn powinien się chuśtać przy ruszaniu, ale tego nie trzeba jeśli to nie jest profesjonalna robota. I tak będzie lepiej niż teraz.

Jeśli trzeba by, robić animację płynu przy przesuwaniu (co w takim projekcie jak ten jest raczej zbędne) to można by też zasymilować to w małym domain - trzeba jednak więcej zachodu, bo trzeba by zrobić dłuższą symulacje płynu z obrotami fiolki w przeciwną stronę do wektora przyspieszenia (i później w trakcie poruszania poziomego fiolki robić rotację domain, o taki sam kąt tylko przemnożony przez -1) - będzie się ciecz zachowywała jakby oddziaływało na nią przyspieszenie, bez gigabajtów pamięci i olbrzymich rozdzielczości (co łączy się z czasem liczenia)

Odnośnik do komentarza
Udostępnij na innych stronach

widzicie jak ładnie umiecie współpracować :) a jakby co to grawitację można animować w 2.49 :)

Tylko jeśli dobrze pamiętam fluidy nie słuchają się pól siłowych, tylko swojej grawitacji wpisanej w ustawieniach domain (której nie da się ustawić klucza... a w 2.50 jest to możliwe, bo tu do wszystko możesz animować). W 2.49 animację grawitacji można uzyskać tylko przez animację reszty w przeciwną stronę ;p.

Odnośnik do komentarza
Udostępnij na innych stronach

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

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności