Differences

This shows you the differences between two versions of the page.

Link to this comparison view

vdvac:lab7 [2026/05/14 11:15]
anca.morar
vdvac:lab7 [2026/05/14 18:22] (current)
anca.morar [Inverse kinematics cu algoritmul Fabrik]
Line 1: Line 1:
 ====== Laboratorul 7 ====== ====== Laboratorul 7 ======
  
-===== Animația prin plasă poligonală =====+===== Inverse kinematics cu algoritmul Fabrik ===== 
 + 
 +**Forward And Backward Reaching Inverse Kinematics (FABRIK)** 
 +  * abordare iterativa care rezolvă problema IK 
 +  * determină parametrii articulatiilor astfel incat un end effector al structurii articulate sa ajunga intr-o pozitie dorita (target) 
 + 
 +**Structura articulata** 
 +  * Legăturile reprezintă obiectele rigide din care este alcătuită structura, ex. oasele. 
 +  * Punctele de joncțiune reprezintă articulațiile ​prin care sunt conectate obiectele rigide 
 +  * Structura ierarhică se reprezintă printr-un arbore, în care: 
 +    * nodurile reprezintă legăturile 
 +    * arcele reprezintă joncțiunile  
 +  * Lanț secvență de legături și joncțiuni 
 +  * End effector ​joncțiune fără copii (capătul unui nod frunză)  
 + 
 +**Algoritm** 
 +  * Date de intrare:  
 +    * pozițiile joncțiunilor $p_i$ cu $i = 0 .. n-1$ 
 +    * poziția dorită (target) $t$ 
 +    * distanțele dintre fiecare două joncțiuni (lungimea fiecărei legături): $d_i = |p_{i+1}-p_i|$ cu $i = 0 .. n-2$ 
 +    * dacă $|p_0 - t | > d_0 + d_1 + ... + d_{n-2}$ (target-ul nu poate fi atins) atunci 
 +      * se găsește vectorul $(t - p_0)$ și se determină poziția relativă a fiecărei joncțiuni de-a lungul vectorului (se întinde întreg lanțul în direcția punctului țintă) 
 +      * altfel (target-ul poate fi atins) 
 +        * se calculează distanța dintre end effector și target $diff = |p_{n-1} - t |$  
 +        * cat timp $(diff > prag)$ 
 +          * executa iteratia forward 
 +          * executa iteratia backward 
 + 
 +**Iterațiile forward si backward** 
 +    * Mutam end-effectorul la $t$, i.e., $p_{n-1}=t$ 
 +    * Pentru fiecare din punctele anterioare $p_i$, $i = n-2 ... 0$: 
 +       * Găsește vectorul $(p_{i+1} - p_i)$ și noua poziție $p_i$ ca pozitia relativa a acelei jonctiuni de-a lungul acestui vector 
 + 
 +  * Acum, rădăcina $p_0$ ar fi deplasata fata de pozitia initiala b 
 +  * Seteaza $p_0 b$ 
 +  * Pentru fiecare din urmatoarele puncte $p_i$, $i 1 .. n-1$: 
 +    * Gaseste vectorul $(p_i - p_{i+1})$, si noua pozitie, $p_{i+1}$ ca pozitia relativa a acelei jonctiuni de-a lungul acestui vector 
 +  * Actualizeaza noua diferenta ​ $diff |p_{n-1} - t |$ 
  
-  * Plasa poligonala (mesh) a fost prima metoda de reprezentare a personajelor , direct inspirata din tehnicile de animatie folosite in plan 
-  * Personajul este reprezentat printr o plasa poligonala 3D 
-  * Animatia personajului consta in deformarea plasei, fiecarui cadru imagine corespunzandu-i o “poza” (ipostaza) a personajului 
-  * Numarul de varfuri ale plasei si conectivitatea lor nu se modifica de la o poza la alta , ci doar pozitiile varfurilor 
-  * De regula , animatorul defineste doar un numar de «poze cheie», restul pozelor fiind obtinute prin interpolarea intre pozele cheie 
  
-**Avantajul metodei** 
-  * Animatorul poate decide cat de apropiat de realitate sa fie modelul personajului. Teoretic, cu suficiente poligoane se poate obtine orice 
  
-**Dezavantajele metodei** 
-  * Trebuie creat cate un model 3D (poza) pentru fiecare cadru cheie 
-  * Consumul de memorie creste odata cu numarul de poligoane ale modelului 
-  * Pozele din cadrele cheie trebuie sa fie foarte apropiate pentru a se obtine rezultate bune 
-  * Animatiile produse sunt greu de refolosit , ceea ce duce la costuri mari 
-  * Calitatea animatiei depinde de inspiratia si talentul animatorului. Spre deosebire de o animatie 2D, o animatie 3D este mult mai greu de conceput: trebuie sa arate cat mai natural din orice pozitie 3D ar fi privita 
vdvac/lab7.1778746502.txt.gz · Last modified: 2026/05/14 11:15 by anca.morar
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0