Suvremena računalna grafika u 3D aplikacijama

Sanja Bjelovučić-Kopilović

Sažetak

U ovome radu dan je kratki prikaz problematike kardanskog bloka u mehanici strojeva i u 3D grafičkim aplikacijama. Rješenje tog problema korisno je u poznavati u grafičkoj tehnologiji, primjerice kod simulacije proizvodnih procesa, ili ergonomskih analiza. Sami tiskarski strojevi uglavnom vrše ravninsko gibanje, pa kod njih postoji mala šansa da do takvog rotacijskog problema dođe, ali ipak postoji. Navedena su neka moguća rješenja, iako taj problem još uvijek nije u potpunosti riješen, u smislu da do kardanskog bloka uopće ne dolazi a da je rješenje lako i savršeno izvedivo.

Ključne riječi: kardanski blok, 3D grafičke aplikacije, ergonomija u grafičkoj industriji, rotacije, Eulerovi kutevi, kvaternioni

1. Uvod

Suvremena 3D grafika koristi se raznim metodama modeliranja realnog svijeta. Osim same izrade modela, uobičajeno je korištenje mehaničkih simulacija temeljenih na zakonima mehanike čime animirani pokret objekta dobiva realističan prikaz. S druge strane, računalo preuzima ulogu vođenja simulacije te uz zadane parametre bitno olakšava posao animatora. Suvremene računalne aplikacije uz pravilno parametriranje rezultiraju vjernom slikom stvarnoga svijeta, a potvrdu teze moguće je pronaći  u zaista širokim primjenama tzv. virtualnih okružanja, kao što su film i TV, igre, dizajn i projektiranje, simulacije, vizualizacije, predstave, događaji i marketing, itd. U simulacije spadaju i ergonomske simulacije, kako u svakoj industriji, tako i u grafičkoj industriji, pogotovo u procesima dorade, skladištenja, transporta. U simuliranu scenu stvarnog procesa postavljaju se virtualni ljudi s mjerama prema statističkom modelu populacije i ustanovljava se hoće li većina populacije moći ergonomski koristiti određeni stroj ili kakva su tjelesna oštećenja moguća prilikom pojedinih pokreta. Zato je jako bitno simulirati što složenije pokrete, s najviše mogućih stupnjeva slobode gibanja i rotacija, jer su oni najkritičniji.

2. Kardanski blok u mehanici

Da bi se omogućila matematička formulacija gibanja živih sustava, uvedene su slijedeće temeljne postavke:

A. živi sustav smatra se mehanizmom sastavljenim od članova (kostiju) koji su povezani u kinematičke lance, te od mišićnog sustava kao pogonskog dijela tog mehanizma;

B. kosti se zbog svoje čvrstoće smatraju u u 1. aproksimaciji krutim tijelima;

C. zglobovi su svrstani u 3 skupine: s jednim, 2 i 3 stupnja slobode gibanja; posebno se razmatraju zglobovi s promjenjivim brojem stupnjeva slobode (npr. koljenski zglob, koji tijekom ekstenzije ima samo 1, a tijekom savijanja 2 stupnja s.g.). Na osnovi tih temeljnih postavki moguće je postaviti strukturnu shemu ljudskog kostura kao kinematičkog lanca. Ljudski kostur može se smatrati skupom od 6 kinematičkih lanaca, od kojih je 1 zatvoren (kralježnica s grudnim košem), a 5 su otvoreni (glava, ruke i noge).

Normalni ljudski kostur ima ~250 s.s.g., 95 zglobova s jednim, 80 s dva, i 75 s tri s.s.g. Od toga ruka s ramenom ima 28 s.s.g, a noga 25 s.s.g. Prema tome, udovi imaju 106 s.s.g, odnosno ~40% od ukupnog broja s.s.g. Kralježnica ima 54 s.s.g ili ~20% od ukupnog broja s.s.g. Ostalih 40% odnosi se na zglobove prsnog koša, vrata i glave.

Za neke kinematičke analize i simulacije nije potrebno razmatrati sve zglobove i sve s.s.g., ali i tada ih se mora obuhvatiti relativno puno.

 

Sl. 1

Mehanika kao znanost podložna je svojim zakonitostima. S obzirom da se upravo mehanika koristi kao temelj 3D simulacije pokreta, za očekivati je da će se poznati problemi koji postoje u mehanici kao znanosti preslikati i u domenu 3D animacije. U pojedinim će situacijama ova povezanost potvrđivati realističnost same animacije, dok će u nekim drugim slučajevima problem uzrokovati nedostatke u pokretu ili čak u potpunosti izmijeniti očekivani rezultat.

Logično je da u 3D prostoru objekti posjeduju do tri stupnja slobode. Upravo su ta tri stupnja slobode dovoljna za obavljanje vrlo složenih pokreta u prostoru koji uključuju tri osnovne promjene položaja objekta u prostoru (roll-ljuljanje-rotacija x-osi, pitch-poniranje- rotacija y-osi, jaw-zanošenje- rotacija z-osi).

Slika 2.

Međutim, dogodi li se složeno gibanje u prostoru po sve tri osi, moguć je slučaj međusobnog poklapanja osi što u konačnici može rezultirati ozbiljnim posljedicama gubitka jednog ili čak dva stupnja slobode. U jednostavnijim će slučajevima pokreti dobivati neprirodan izgled, međutim, u složenim će primjenama ovaj problem prouzročiti ozbiljne posljedice: jedan od ilustrativnih primjera je računalno navođenje svemirskog broda Apollo kod kojeg je upravo takvim navođenjem svemirski brod doveden u položaj u kojem je ostao bez jednog stupnja slobode pa računalo nije moglo nastaviti navođenje broda u željenom pravcu. Spretnost posade u ručnom vođenju, ponajprije zahvaljujući poznavanju problema, spriječila je moguću katastrofu zbog gubitka kursa.

Sustav koji posjeduje tri stupnja slobode najlakše je opisati na primjeru tri mehanička kardanska prstena jedan unutar drugog. Unutarnji prsten ima os koja je ovješena na onaj sljedeći, ali tako da se osi svakog od prstena nalaze poravnate s jednom od koordinatnih osi. Nakon što se promotri kako se ponaša opisani mehanički sustav bit i će ga vrlo lako preslikati na gore spomenuti primjer svemirskog broda koji, doduše, nema mehanički ni na koji način spregnute koordinatne osi, međutim, njegov pogon riješen je upravo tako da se retroraketama smještenim u tri koordinatne osi dobiva upravo identičan mehanički efekt.

 

Sl.3.a Normalna situacija: 3 prstena su nezavisna

 

Sl.3.b Gimbal lock: 2 od 3 prstena su u istoj ravnini, 1 stupanj slobode je izgubljen

Položaj objekta u prostoru s tri stupnja slobode u Eulerovom se prostoru definira pomoću 3 kuta, svaki određuje položaj tijela u odnosu na jednu koordinatnu os. Na potpuno isti način računalne aplikacije određuju položaje objekata koji se animiraju. Kretanje (rotacija) animiranih objekata odvijat će se upravo po tri kuta te se ponovo može promatrati gore spomenuti sustav tri mehanička kardanska prstena.

Svaki od prstenova može se zakretati oko svoje osi. Zakretanje jednog prstena rezultira rotacijom samo oko jedne osi (jedan stupanj slobode). Zakreće li se istovremeno dva redu prstena, jasno je da će nastati složeno gibanje nastalo iz dvije nezavisne rotacije, a položaj je određen u ravnini koju određuju osi rotacije (dvodimenzionalno). Rotiranjem trećeg prstena objekt može poprimiti bilo koji položaj u trodimenzionalnom (Eulerovom) prostoru.

Cijeli sustav ponaša se 'pristojno' ukoliko su spomenuta gibanja sama sebi svrha te nemaju međusobnih korelacija u smislu da se složenim gibanjem pod određenim kutom treba zauzeti točno određeni položaj te iz njega nastaviti gibanje u nekoj drugoj složenoj rotaciji.

Primjer se u praksi može vrlo lako pronaći: može se raditi o složenoj kretnji rukom s nekim teretom koju izvodi radnik u u nekom procesu u grafičkoj industriji. Pretpostavimo da u takvom pokretu sudjeluje rame, lakat i zglob, a putanja tereta može doista imati rotaciju u svim smjerovima. I dok kod radnika ne treba očekivati poteškoće u pokretu zbog odgovarajuće uvježbanosti, animator može učiniti pogrešku kod koje će uvježbano oko uočiti neodgovarajući pokret ruke modela.

Problem je poznat kao blokada jednog od stupnjeva slobode kardanskog sustava uslijed međusobnog poravnanja rotacijskih osi (blokada kardana, engl. gimbal lock). Zakrene li se jedan od prstena tako da se njegova os rotacije poravna s jednom od osi rotacije preostalih prstenova jasno je da sustav gubi jednu od osi slobode. Nastave li se dalje oba prstena kretati jednakom kutnom brzinom, rezultantno gibanje više ne može biti složeno, već se i dalje odvija u istoj ravnini. Matematičko objašnjenje problema može biti vrlo jednostavno ukoliko se uzme primjer u kojem se jedna os poklapa s drugom pod kutom od 90ş (što je uobičajeno). U tom slučaju se položaj u Eulerovom prostoru definira kao kvocijent kosinusa kuta koji kod navedenih 90ş iznosi 0, te bi rezultat trebao biti beskonačan (odnosno, dijeljenje s nulom nije definirano). Dakle, fizikalno objašnjenje je gubitak jedne dimenzije.

Na koji se način može riješiti opisani problem? U primjeru radnika problem je riješila sama priroda ne dozvolivši zglobovima dovoljno slobode pokreta. U matematičkom smislu, pojedini se pokreti ne mogu dovesti do kuta od 90ş te samim time ne postoji problem dijeljenja s nulom (cos 90ş). Na žalost, uvijek nije moguće izbjeći takvu situaciju. Najjednostavniji primjer je let (aviona ili svemirskog broda).

Jedino moguće rješenje u tom je slučaju dodavanje četvrtog, vanjskog kardanskog prstena koji se pokreće posebnim pogonom (motorom) te se njime kontrolira cijeli sustav kardana na način da se sustav zadržava izvan područja u kojem može doći do gubitka stupnja slobode, odnosno dimenzije uslijed poravnavanja dviju osi kardana. Četvrti je prsten redundantni jer ne pridonosi povećanju stupnjeva slobode. Matematički, sustav se opisuje kvaternionom, a predstavlja vektor u četverodimenzionalnom prostoru:

q = w + xi + yj + zk,

gdje su i, j i k drugi korjeni iz –1.

 

Sl.4. Dodavanje četvrte rotacijske osi može riješiti problem kardanskog bloka , ali zahtijeva da vanjski prsten ima aktivni vanjski pogon takav da ostaje 90° izvan poravnanja s najunutarnjijom osi (vratilo zamašnjaka). Bez aktivnog pogona vanjskog prstena, mogu se poravnati sve 4 osi u ravnini kao što je prikazano na sl., ponovno dovodeći do kardanskog bloka i nesposobnosti ROLL

3. Kardanski blok u 3D grafičkim aplikacijama

Kako riješiti problem u 3D grafičkoj simulaciji? Ako je riječ o gotovim programskim paketima, neke aplikacije referiraju se samo na Eulerov prostor i koriste simulaciju u sustavu kardana s 3 prstena. Na animatoru je da vodi računa o eventualnom mogućem poravnavanju osi stupnjeva slobode, dovijajući se na razne načine, neke čak i vrlo duhovite (duhovita koncepcija potpune promjene izvedbe scene). Na You Tube-u mogu se naći zgodna  rješenja animatora-amatera.

Naprednije aplikacije simuliraju četvrti kardanski prsten kvaternionom. Jedna od takvih aplikacija je 3DsMAX gdje su kvaternioni po definiciji (defaultna) rotacijska metoda, koja također ima mane osim složenosti – rotacije nisu tako glatke kao kod Eulerovih rotacija. Osnovna razlika je što Eulerove rotacije u MAX-u daje pristup funkcijskim krivuljama. Korištenjem tih krivulja, moguće je definirati gotovo savršeno glatko rotacijsko gibanje objekta. 

Mnogi animatori nalaze kvaternione teškima za razumijevanje i upotrebu, pa se drže Eulerovih rotacija i paze na potencijalne probleme. U MAX-u, opcija Track View ima uslužni program (utility) koji pomaže kod rada s Eulerovim rotacijama. Eulerov filter analizira tekući raspon animacijskih sličica i korigira bilo koji kardanski blok koji detektira. Izbor tog uslužnog programa u Track View Utilities dijaloškom okviru otvara jednostavan dijaloški okvir u kojemu se može postaviti raspon sličica za analizu. Također postoji opcija Add Keys if Needed (dodaj ključne sličice ako je potrebno). Osim toga, pojava kardanskog bloka može se minimizirati tako da se os koja rotira najmanje postavi kao srednja os.

Teorija kvaterniona u matematici je poznata odavno (Sir William Hamilton postavio ju je 1843.), ali tek je 1985. započelo njihovo korištenje u računalnoj grafici, kada je Ken Shoemake otkrio njihova izuzetno povoljna svojstva za prikaz rotacija. Jedna od najjačih strana kvaterniona kao prikaza rotacije je mogućnost dobre interpolacije izmeđuv dviju orijentacija. Najpoželjnija interpolacija za animaciju obično je interpolacija po najkraćem luku konstantnom brzinom. Bez obzira na jednostavnost koncepta, izvedba ovakve interpolacije općenito nije jednostavna, osim kada su obje orijentacije izražene kvaternionima, ovakva interpolacija dobiva se relativno jednostavno upotrebom sferne linearne interpolacije (engl. spherical linear interpolation- SLERP).

Naravno, ne moraju se koristiti gotovi programski paketi za izradu simulacija. Sve  to vješti programeri mogu sami isprogramirati, koristeći dane formule i algoritme, i gotove modele i scene napravljene u nekom programskom paketu.

4. Primjer ozbiljne teškoće zbog izbjegavanja korištenja kvaterniona

Koliko pristup s kvaternionima predstavlja ozbiljniji izazov za programera demonstrirat će se na primjeru svemirskog programa Apollo spomenutog na početku.

Prije razmatranja same problematike, nekoliko činjenica vezano za svemirske programe američke svemirske agencije NASA (National Aeronautics and Space Administration). NASA je vodila nekoliko svemirskih programa, opći program za dvoje pilota vođen je pod imenom «Gemini», a program čiji cilj je bio uspješno spuštanje čovjeka na Mjesec i njegov povratak na Zemlju prije 1970. godine bio je Apollo. Ključno za problem upravo je vremenska definicija.

Upravljanje letjelicama vodila su računala upravo na način na koje danas rečunalne igre simuliraju identične događaje. Jedina je razlika u činjenici da su računala u svemirskim letjelicama podatke o letu dobivali s ugrađenih inercijalnih instrumenata (IMU – inertial measurement unit). Program Gemini vođen je brižno kako na početku ne bi došlo do neuspjeha tako da su navigacijski instrumenti bili opremljeni s redundantnim (četvrtim) kardanskim prstenom. Zbog vremenskog tjesnaca i želje da se prije 1970. godine čovjek spusti na Mjesec, program Apollo 'ostao' je bez redundantnog kardanskog prstena, uglavnom na inzistiranje administracije i donekle uvjeravanjem stručnjaka s MIT-a, a cjelokupnu problematiku opisao je David Hoag još u travnju 1963. godine. MIT je zagovarao Eulerov prostor pravdajući ga jednostavnošću, manjom težinom i prostorom (vrlo bitno za letjelicu), ali i mogućnošću pravovremenog slanja misije na Mjesec. Inercijalni sustav bio je opremljen računalom koje je na 70ş davalo alarm mogućeg gubitka dimenzije, a na 85ş automatski sustav više nije bio u funkciji. Ručno, jedino se zakretanjem cijelog svemirskog broda oko osi stabilizirati rad instrumenta. Okretanje broda oko osi zapravo je bilo identično korištenju cijelog broda kao redundantnog prstena. Spomenuta činjenica posebno je imala utjecaja pri specifičnom smjeru leta kod samog spuštanja na Mjesec jer je sustav bio prilagođen Mjesečevom koordinatnom sustavu. Time je let vertikalno na Mjesečevu površinu imao velike šanse preklopiti dvije osi za slučaj potrebe rotacije broda oko vertikalne osi.

Bez ulaska u detaljniju analizu, na prvom letu u orbiti oko Mjeseca mjesečevim modulom (Apollo 10)  čija zadaća nije bila spustiti se na Mjesec već samo uspješno odvojiti mjesečev modul od servisnog, u određenom trenutku leta simulacije spuštanja na Mjesečevo tlo, astronauti su pogrešno ostavili računalo u automatskom režimu rada te je u jednom trenutku IMU ušao u nedopušteno stanje te se brod našao u nepovoljnom položaju. Iako je reakcija astronauta uslijedila vrlo brzo, mjesečev se modul našao na neplanirano velikoj udaljenosti od servisnog modula, na sreću, još uvijek u području u kojem je bio omogućen nesmetan povratak uz dodatno manevriranje. Postoji i zapis u kojem je Stafford, kapetan mjesečevog modula Snoopy Apolla 10 glasno povikao kontroli leta da je brod izgubio dimenziju nakon što je cijelih 10 minuta prije predviđenog vremena doveo mjesečev modul u poziciju za spajanje sa servisnim modulom. Nakon toga je uslijedilo spretno ručno upravljanje tako da su se sami astronauti začudili kako je brod ostao u korektnoj putanji (operabilnost inercijalnog sustava bila je moguća jedino okretanjem cijelog broda koji je u ovom slučaju na neki način predstavljao četvrti redundantni kardanski prsten).

Kasnije se na misiji Apolla 11 ponovila slična priča s time što je u njegovom letu došlo do pogrešnog alarma zbog razgođenja inercijalnog sustava, i ovdje je korekcija napravljenja ručnim upravljanjem, odnosno ugađanjem sustava, a pošalica Collinsa, kapetana servisnog modula bilo je pitanje žele li kao poklon za Božić četvrti prsten – Collins je u svojim prethodnim misijama letio na programu Gemini koji je bio opremljen ovim uređajem.

Dva opisana primjera, doduše, ne spadaju u područje računalne grafike, međutim, sve operacije koje su se odvijale u potpunosti je moguće ponoviti izradom računalne animacije te vjerno simulirati upravo događaje koji su se doista zbili. Time se može i praktično pokazati velika povezanost stvarnog događaja i njegove simulacije uzevši u obzir sve moguće probleme koji su prisutni u oba slučaja.

5. Zaključak

Vrlo je zanimljivo da je puno ljudi upoznato s problemom kardanskog bloka, ali ne zna njegov naziv. Najzanimljivije je da im nikada ne pada na pamet da taj mehanički problem ima matematičko apstraktno značenje i da se može riješiti kvaternionima. To, kao i mnoge druge pojave u znanosti, dovodi do logičnog zaključka da postoji samo jedna znanost, opća i univerzalna, koja se može klasificirati u razna iterdisciplinarna područja, ali uvijek na neki način povezana.

6. Literatura

1. Pandžić, I., Virtualna okruženja, Element, Zagreb, 2004.

2. Muftić, O.: Mehanika I (Statika), Tehnička knjiga, Zagreb, 1989.

3. Jecić, S.: Mehanika II (Kinematika i dinamika), Tehnička knjiga, Zagreb, 1989.

4. Cogner, D.: Physics Modelling for Game Programmers, Thomson Course Technology, Boston, 2004.

5. Perše, S.: Osnove strojarstva, Fakultet prometnih znanosti Sveučilišta u Zagrebu, Zagreb, 1996.

6. Muftić, O.: Mehanika živih sustava, Tehnička enciklopedija, Svezak 8, Zagreb, Školska knjiga, 1989.

7. David Hoag (1963). "Apollo Guidance and Navigation - Considerations of Apollo IMU Gimbal Lock - MIT Instrumentation Laboratory Document E-1344". http://www.hq.nasa.gov/alsj/e-1344.htm.

8. Eric M. Jones and Paul Fjeld (2006). "Gimbal Angles, Gimbal Lock, and a Fourth Gimbal for Christmas". http://www.hq.nasa.gov/alsj/gimbals.html.

9. Jonathan Strickland (2008). "What is a gimbal -- and what does it have to do with NASA?". http://science.howstuffworks.com/gimbal.htm.

10. Gimbal Lock – explained, http://www.youtube.com/watch?v=rrUCBOlJdt4

11. Euler angles and gimbal lock (video) Part 1, Part 2 , http://guerrillacg.org/home/3d-rigging/the-rotation-problem, http://guerrillacg.org/home/3d-rigging/euler-rotations-explained

Patrik Ervell’s latest collection is ironically titled “Software”ADIDAS ORIGINALS TUBULAR SHADOW. In the notes from the presentation, Ervell says he was “interested in developing tension between nostalgia and sci-fi,NIKE ZOOM WINFLO 3” and even included ‘90s cyberpunk amongst his influences. Ervell developed this point of view by creating an imaginary software company called Idegen software systems. He then re-appropriated the company’AIR JORDAN XXXI MENs logo in several of the collection’s garments. Elsewhere,MBT TARIKI MEN mohair coats with oversized lapels made an appearance alongside mock neck tees,NIKE AIR JORDAN RETRO 5 police-inspired ribbed sweaters,MBT FORA GTX WOMEN flight bombers, and polyurethane leather coats. The setting was also suitably dystopian, and the resulting ambiance was something akin to if the creators of Deutschland ’83 and Hackers met up and decided to create a collection… We mean that as a compliment.Yesterday afternoon,JORDAN CP3 IX MEN artist JR spent the day working on his latest collaborative piece with Daniel Arsham in Greenpoint,NIKE AIR MAX 90 Brooklyn,MBT KIMONDO GTX MEN NYC. Connecting the lines between art, architecture, dance and theater, Daniel Arsham has been known to subvert existing architectural structures in unconventional,NIKE CLASSIC CORTEZ NYLON playful ways; confusing and confounding the expectations of space and form. Source: Street Art News .