KLONIRANJE
IZRAZA LICA - POSTUPAK |
DODIRNA LINIJA USANA Linija dodira gornje i donje usne zahtjeva specijalnu pažnju pri izvedbi algoritma kloniranja izraza. Iako su točke gornje i donje usne vrlo blizu, njihovi vektori pomaka vrlo često imaju različito usmjerenje. Ukoliko točku koja se nalazi na donjoj usni kontrolira trokut gornje usne (tj. pronađen je presjek točke donje usne i trokuta gornje usne kod cilindrične projekcije) doći će do pojave velikih i vidljivih grešaka. Postoje dva načina rješavanja ovog problema, ovisno o izgledu neutralnog izraza lica naših modela. Ukoliko je neutralni izraz predstavljen sa lagano otvorenim ustima, dovoljno je definirati dvije točke na krajnjim kutovima usta. Linija između te dvije točke definirat će nam granicu koja odjeljuje gornju i donju usnu. Ukoliko je neutralni izraz predstavljen sa zatvorenim ustima, potrebno je vrlo precizno poravnati dodirne linije usana izvornog i ciljnog modela. Krivo poravnavanje rezultira krivim izračunom presjeka točke i trokuta te pomicanjem točaka usta u krivom smjeru. Slijedeći postupak potreban je da bi se točno poravnale dodirne linije usana izvornog i ciljnog modela: Prvo, potrebno je uključiti sve točke dodirne linije usana izvornog modela u početni skup za učenje za interpolaciju radij-funkcijama. Budući da se točke izvornog modela najčešće ne poklapaju sa točkama ciljnog modela, potrebno je izračunati te točke na ciljnom modelu, i to na slijedeći način: -
Izračunati sumu udaljenosti između lijevog i desnog kraja dodirne
linije za oba modela Izračunom tocaka iz gornje formule dobivamo točke izvornog modela koje se nalaze unutar površine ciljnog modela. No, kao i kod cilindrične projekcije, i ovdje nam je cilj dobiti sve točke izvornog i ciljnog modela unutar jedne površine. Da bi to postigli, potrebno je privremeno pomaknuti točke ciljnog modela na njima odgovarajuće točke u izvornom modelu. Te odgovarajuće pozicije izračunavaju se preko normaliziranih parametara i gornje formule, samo što ovaj put zamijenimo mjesta izvornim i ciljnim parametrima u formuli. Dvije
stvari su bitne kod algoritma poravnavanja dodirnih linija. Prvo,
ne dolazi do stvarne degradacije izgleda ciljnog modela pri poravnavanju
točaka sa izvornim modelom. Poravnavanje je privremeno i služi samo
kako bi se odredili trokuti u izvornom modelu koje točke ciljnog modela
sijeku (kao i cilindrična projekcija ciljnog na izvorni model). Za
animaciju se koriste originalne točke ciljnog modela. Drugo, mijenjanjem
položaja točaka usana na dodirnoj liniji moguća je pojava invertiranih
trokuta. To će se desiti ukoliko pomaknemo jednu točku trokuta, a
druge dvije ne. U tom slučaju pomak koji smo napravili na jednoj točki
prenosimo i na ostale točke u njenoj blizini sve dok ne primijetimo
prestanak pojave invertiranih trokuta. Normale invertiranih trokuta
gledaju u suprotnom smjeru od normala ostalih trokuta na licu. |