Cloth simulation - log

Atgal į medžiagos imitavimo puslapį.

2003 01 10

God damn implicit integrators! Nieko nesigauna (na, gaunasi, bet stabilumas toks pats kaip ir explicit, veikia daug kartų lėčiau, ir kodo žymiai daugiau - neprikolkas). Straipsniais nepatikėjęs, net visas išvestines pats išsivedžiau (o vektorių išvestinės vektorių atžvilgiu visai kala), n kartų tikrinau sprendimą, ir t.t. - ir nieko! Nieko gero!

Taigi padariau krūvą paprastųjų išreikštinių integratorių - Oilerio, vidurio taško ir 4 laipsnio Rungės-Kutos. Dabar matyt darysiu susidūrimų tikrinimą, o neišreikštiniai integratoriai gal patys apsigalvos ir susitvarkys savaime :)

2003 01 04

Ehe, išvestinės tai dar nieko... Kai padarai visas išvestines, viską padarai kaip reikia, viską suskaičiuoji ir netgi teisingai, o veikia viskas neteisingai, tai va tada jau blogai. Vis niekaip nepriverčiu neišreikštinio integratoriaus veikti gerai...

Na, kol nepriverčiu, tai padariau keletą paveikslėlių su didesne medžiagos skiaute, iš 6400 dalelių.

2002 12 30

O, išvestinės, išvestinės! O, atvirkštinių funkcijų galvojimas!

Su atvirkštinėm yra taip: yra "sine cardinal" funkcija sinc(x) = sin(x)/x. Man reikia jai atvirkštinės funkcijos (straipsnyje, aišku, parašo "atvirkštinė", o detaliau - ne). Kiek suprantu, analitiškai atvirkštinė nesusiskaičiuoja, arba/turbūt aš viską užmiršau, o Mathcadas man irgi nepadeda.

Pakolkas iš lempos sugalvojau aproksimaciją 0.502*sqrt(1-x)+0.98*acos(2*x-1) - kaip visiškai iš galvos sugalvotai, visai neblogai :)

2002 12 28

Na štai, "(un)Stable but Responsive Cloth" jau yra ir veikia. Unstable todėl, kad kolkas varom tiesiog išreikštiniu Oileriu, kas šiaip jau yra nevalia. Dar nėra jokių susidūrimų tikrinimų, bet vistiek gerai.

2002 12 26

"Physically based modeling" kursas (čia) yra labai gerai. Super slaidai, ir super anotacijos. Visiem, kas domisi fizika/partiklais, būtina!

2002 11 21

Pradėjau žiūrėt į MTL ir ITL bibliotekas (Matrix Template Library ir Iterative Template Library). Pakol žiūri - labai gražios ir galingos bibliotekos (vėlgi - "power of C++" - templeitai valdo!).

2002 11 20

Pradėjau kodinti pačią medžiagą (pseudo-frameworką jau padariau anskčiau). Mieliausiu dūšiai būdu pasirodė besąs K.Choi, H.Ko "Stable but Responsive Cloth" (SigGraph'2002), taigi maždaug jo būdu ir darau.

Jėgų medžiagoje skaičiavimas "pasidarė" stebėtinai lengvai. Pliusas straipsnio autoriams, kad neperkrovė matematine notacija, kurios, aišku, padoriai nebeatsimenu (na, straipsnyje mėtosi Jakobianai ant kiekvieno kampo, bet jie ten tik įrodymo tikslais :)).

Aišku, kad nieko vizualaus dar nematyti (nes dar niekas nepadarė, kad kas nors ką nors rodytų)...

2002 11 17

Teoriškai aš turėčiau daryti "medžiagos imitavimas baigtinių elementų metodu" - t.y. "finite elements method" (FEM). Praktiškai gi neimanoma rasti straipsniu apie FEM medžiagai imituoti - visi naudoja "interacting particles" (dar vadinama "mass spring system").

Nesu tikras, kad FEM ir MassSpring kuo nors skiriasi (arba jie gali but vienas kito subset'ai)... nieko apie FEM nežinau :)

Mano durnai galvai atrodo, kad itin didelio skirtumo tarp jų neturėtų būti - visvien yra "kažkokios" medžiagą aprašančios lygtys, ir jas pritaikai arba FEM'ui, arba mass-spring sistemai. O štai kad iš didžiausių konferencijų per pastaruosius 7 metus nepasitaikė nei vieno straipsnio "grynai" apie FEM (palyginimui: yra dešimtys straipsnių apie mass-spring), jau yra šioks toks, nors ir subjektyvus, rodiklis :)

2002 11 11

Čia bus viskas apie imitavimą "interacting particles" metodu. Taigi, medžiagos imitavime yra 3 iš esmės atskiros dalys: 1) jėgų medžiagoje skaičiavimas, 2) pagal jėgas medžiagos "pernešimas" į sekančią būseną, 3) susidūrimų aptikimas ir reagavimas į juos.

Kas įdomiausia - daugelis straipsnių 3 dalį daugmaž ignoruoja ("aj, padarom bilekaip, vistiek niekam nerūpi"). Kolkas radau vieną naują straipsnį, iš esmės nagrinėjantį šią problemą (o ji ne tokia maža, kaip atrodo) - Brison, Fedkiw, Anderson "Robust Treatment of Collisions, Contact and Friction for Cloth Animation", SigGraph 2002 (staipsnis lengvai susi-google'ina).

Na, o kitos 2 dalys yra straight-forward: pirmoje turi ryšius tarp particl'ų ir iš jų pagal susigalvotas lygtis apskaičiuoji jėgas; antroje imi ir integruoji. Dabar "ant bangos" yra netiesioginiai (implicit) integratoriai (backward euler, implicit midpoint, BDF). Na, čia irgi šiek tiek matematikos yra, tačiau bent jau sprendimo metodai pakankamai plačiai žinomi ir aiškūs...

2002 11 10

Įdomu, ar pagaliau būsiu priverstas iš tikro sužinot, kas yra BRDF? T.y.: ar naudosiu BRDF medžiagos renderinimui?

...nes kolkas tai kaip ir su daugeliu kitų dalykų: "konceptualiai" žinau, o iš tikro - nevisai...