Til dette tutorial har jeg med vilje brugt helt almindeligt optaget optagemateriale fra en smartphone for at støde på de daglige problemer. Derfor er synsvinklen på den venstre væg meget stejl, og desuden bevæger nogle planter sig. Hvis I vil følge tutoriallet direkte, finder I den brugte 2D-film "Mauern.mov" under arbejdsmaterialet.
2D-Tracking af optagematerialet
Vi starter motions-tracking-workflowen som sædvanligt med at tracke 2D-filmen. Til dette henter vi en Motion Tracker-enhed fra menuen Motion Tracker ind i en ny, tom Cinema 4D-scene.
For at Motion Trackeren kan analysere filmen, åbner vi indstillingsdialogen for Motion Tracker-enheden i Attribut-Manageren på siden for Optagelse. Ved at klikke på knappen Indlæs i linjen for Optagelse kommer vi til Åbn-dialogen.
Her vælger I den medfølgende 2D-film som Optagelse og indlæser den i Motion Tracker-enheden via knappen Åbn.
Resample-værdien for analysen af Optagelsen vedrører kun den kommende tracking-proces for Kamera-rekonstruktionen. Ved den senere Scene-rekonstruktion bruger Cinema 4D generelt den bedst mulige kvalitet af filmen. Men selv for Kamera-rekonstruktionen kan en høj værdi (udover det lidt længere beregningstid) ikke skade.
For 2D-trackingen skifter vi til den tilsvarende side af Motion Tracker-indstillingsdialogen. Vi begrænser os til automatisk tracking, da vi ikke har brug for specielle tracking-punkter til senere opbygning. For at sikre tilstrækkelige tracking-oplysninger aktiverer vi Track-antal til 2000, med en Minimalafstand på 25.
Efter at have klikket på knappen Generer automatisk tracks ...
... finder vi en tilfredsstillende høj mængde tracking-punkter jævnt fordelt i vores optagemateriale.
For at Motion Trackeren viser sig lidt mere tolerant over for hurtige kamerabevægelser, skifter vi inden tracking til Indstillinger-siden og aktiverer der muligheden Ekstrapolér søgeposition.
Nu kan vi starte 2D-trackingen på Automatisk Tracking-siden ved at klikke på knappen < Auto-Track >.
Efter at Motion Trackeren er færdig med sit arbejde, lader vi den trackede 2D-film køre testvis ved at klikke på afspilningsknappen for at kontrollere, om der er tilstrækkelige tracking-punkter igennem hele filmens forløb.
3D-rekonstruktion af kameraet
Ud fra disse Tracking-oplysninger vil vi rekonstruere Kamerainformationerne i næste trin. Til dette skifter vi til næste side i Motion Tracker-indstillingsdialogen, til 3D-beregning. Vi kan forlade de forvalgte værdier for Fuld 3D-rekonstruktion, da Motion Trackeren selv skal bestemme Brennweite.
Efter at have klikket på knappen 3D-rekonstruktion udføres 3D-beregningen af kamerainformationen.
Resultatet af 3D-beregningen viser - som forventet - at de fleste grønne Features er i de velbelyste områder, der ikke bevæger sig, mens de bevægelige planter og den stejle venstre væg forbliver problemområdet udpeget med røde Features på grund af kameraets relativt hurtige bevægelser.
Kalibrering af scenen
Før vi går i gang med scene-rekonstruktionen, kalibrerer vi den eksisterende scene med Constraints. Dette trin er teoretisk set ikke nødvendigt for rekonstruktionen, men bringer scenen straks til et brugbart referencepunkt (oprindelse) og i korrekt akseposition og skala.
For at kunne nå de bedste tracking-punkter til dette trin, flytter vi tidsindstillingen til et senere tidspunkt, der garanterer os tracking-punkter af høj kvalitet.
Vi begynder med at bestemme Scene-origoet. Til dette tildeler vi Motion Tracker-enheden et Positions-Constraint via menuen Motion Tracker>Constraints.
For at erklære et Ursprungspunkt i scenen skal vi klikke med det aktive Positions Constraint-værktøj på et tracking-punkt, der ligger midt på gulvet. Den tykke, orange kantlinje på tracking-punktet viser os, at Urspringet er bestemt.
Vi kan sikre os i indstillingsdialogen for Motion-Tracker- objektet tildelt Positions Constraint- tagget, at den valgte scene-Ursprung er bundet til et højkvalitets, fordi grønnet feature-mål (her: Auto 0661).
Vi fortsætter med at definere Y-aksejusteringen med en Lag Constraint fra menuen Motion Tracker>Constraints,.
Med det aktive Lag Constraint-værktøj spænder vi en Trekant ved at klikke på tre tracking-punkter på gulvet. Hold øje med aksetojusteringen. Med flytteværktøjet kan I senere vælge trekantspunkterne og eventuelt placere dem på andre, måske mere velegnede tracking-punkter.
Når I er tilfredse med resultatet, skal vi blot fastsætte aksen for Lag Constraint. Dette gøres i indstillingsdialogen for Lag Constraint- tagget, hvor vi vælger Y-aksen.
I det sidste trin af kalibreringen fastsætter vi aksetojusteringen af Z-aksen og samtidig skaleringen af scenen. Vi henter en Vektor Constraint fra menuen Motion Tracker>Constraints.
Med oprettelsen af Vektor-Constraint får vi en linje i 3D-visningen, som vi flytter til to passende tracking-punkter på højre væg for at definere Z-akse placeringen.
Når linjen er positioneret over to tracking-punkter parallelt med væggen, åbner vi indstillingsdialogen for Vektor-Constraint- tagget og fastsætter, at vektortiltrækningslinjen definerer Z-aksen. Samtidig med at vi definerer Z-aksen, fastsætter vi også scenens skalering. Vi sætter den angivne længde til Kendt og giver en skønnet længde på linjen (i mit tilfælde 1,5 meter). Af grønnfarvningen af de to linjemål kan vi se, at disse tracking-punkter også er velegnede til kalibreringen.
Efter afslutningen af kalibreringen skifter vi ved at klikke på det lille kamera-symbol ved den rekonstruerede kamera kort til editor-kameraet for at se scenen, indtil nu rekonstrueret.
Som ønsket ligger gulvet af indmuringen på XZ-planen i vores globale koordinatsystem. Med ujævnheden i gulvet og helt sikkert heller ikke helt lodrette væg, kan vi være ganske tilfredse med dette resultat.
3D-rekonstruktion af indmuringen
Efter den endelig udførte forberedelse når vi til den egentlige nyhed i Release 19, rekonstruktionen af scenen baseret på 2D-filmdatasæt.
Vi skifter derfor til den sidste side i indstillingsdialogen for Motion Tracker-objektet til rekonstruktionen. Her vælger vi først Preset høj kvalitet, som vi straks vil tilpasse til vores behov.
Szenen-Rekonstruktionen opdeles i generering af en Punkt-sky samt den efterfølgende Meshing, omsætningen af denne Punkt-sky til et Polygon-Mesh. Begge ville automatisk køre efter hinanden, da vi valgte Preset høj kvalitet. Men da vi først kun ønsker at modtage Punkt-skyen for at kontrollere den, før Meshing aktiverer vi muligheden Kun punktsky, før vi starter rekonstruktionen ved at klikke på knappen Start sceneryskonstruktion.
Afhængigt af computerens hastighed kan der nu gå nogle minutter, før der efter afslutningen af Szenen-Rekonstruktionen genereres et Polygonobjekt med en scenepunkt-sky. Dette Punkt-sky-objekt har en Vertex-farver-tag, der viser de enkelte punkter i punktskyen med den rekonstruerede farveinformation.
I editor-kamera visningen har vi allerede med denne farvede punktsky meget sigende information om rekonstruktionen og det forventede Meshing.
I dette tilfælde kan vi selvfølgelig ikke være tilfredse med resultatet. Da den bageste væg slet ikke kan ses, viser gulvet sig kun i enkelte fragmenter – Meshing har vi med rette sprunget over.
Så vi skal tilpasse indstillingerne for generering af punktskyen til kravene i vores optagelse. For det første reducerer vi den minimale vinkel til 2° for at hjælpe rekonstruktionen ved den venstre og bageste væg. Dette løser problemet med den spidse vinkel ved den venstre væg og den nuværende minimale kamerabevægelse.
Ved at øge patchstørrelsen til 30 opnår vi et større søgemønster, hvilket øger kvaliteten af punktskyen. Endelig deaktiverer vi muligheden for at filtrere små grupper, for at forhindre fine, men vigtige patches i at blive filtreret ud.
Vi sletter det polygonobjekt i den gamle punktsky i Objekt-Manageren, før vi med et enkelt klik på knappen Start scene rekonstruktion forsøger igen.
Oprettelsen af punktskyen vil tage lidt længere tid på grund af ændrede rekonstruktionsparametre, men resultatet taler for sig selv.
Gulvet og den bageste væg er nu også til stede, mens der ikke er mere at hente ved den venstre væg på grund af den dårlige kameravinkel. Men det er ikke videre dramatisk, for der er trods alt ikke behov for et finmasket mesh i områder, der ikke er synlige eller næppe synlige.
Med denne punktsky kan en succesfuld meshing opnås. For at påbegynde bearbejdningen af punktskyen til et polygonmesh, klikker vi på knappen Generer mesh på meshing-siden under Rekonstruktion-området.
Også denne proces tager lidt længere tid på grund af den valgte høje kvalitet, men senest efter et par minutters ventetid får vi præsenteret et næsten overalt lukket polygonmesh.
Der er blevet oprettet et nyt polygonobjekt til det rekonstruerede scenemesh. Da vi nu vil arbejde videre med dette objekt, kan vi deaktivere synligheden af scenepunktskyen og - hvis det ikke allerede er gjort - af motion tracker-objektet i editor-visningen ved hjælp af de farvede slukkeknapper i Objekt-Manageren.
Da også scenemesh-objektet har et vertexfarver-tag, ...
... når vi udvælger vertexfarver-tagget i Objekt-Manageren, viser det farvemappede rekonstruerede mesh, der svarer til optagelsen.
Her bliver de problematiske områder ved rekonstruktionen tydeliggjort endnu en gang på grund af farveforvrængningerne. Men da vi kun er interesseret i et simpelt polygonmesh af indhegningen, kan vi roligt ignorere dette.
Det lille polygonhul i det bageste venstre hjørne bør dog ikke ignoreres. For at lukke dette hul vælger vi polygonobjektet for scenemeshet og åbner værktøjet Luk polygonhul fra menuen Mesh>Opret.
Dette værktøj identificerer det forstyrrende hul i scenemeshet, når vi bevæger musen hen over en tilstødende kant, og lukker hullet, når vi klikker på det.
At glatte polygonmeshet
Den høje opløsning af scenerekonstruktionen afspejler sig naturligvis også i en meget urolig mesh-overflade. Hvis vi bare lægger indhegningens polygonobjekt i en Subdivision Surface-Generator for at gøre meshet glat, vil scenen blot blive mere kompleks på grund af den ekstra opdeling af meshet.
I stedet vælger vi polygonobjektet og henter en Glatte deformer fra menuen Opret>Deformer, mens vi holder Shift-tasten nede.
Ved at tilføje Shift-tasten som Modifier-Key bliver Glatte deformer straks underordnet polygonobjektet for scenemeshet, som det er nødvendigt.
Indstillingerne for Glatte deformer kan vi lade være på standardværdierne.
Nu ser polygonmeshet meget bedre ud. Målet med denne vejledning, scenerekonstruktionen af en indhegning, er dermed opnået. Lad os nu kort se, hvordan vi teksturerer polygonobjektet og integrerer det i 2D-filmen.
Integration af 3D Polygonobjektet i 2D-filmen
For at integrere den rekonstruerede indhegning som et 3D-objekt i den trackede film, skal vi for det første have 2D-filmen klar i baggrunden og for det andet påføre indhegningen en frontalt projiceret materiale-textur.
For at opnå dette åbner vi indstillingsdialogen for Motion Tracker-objektet og skifter til Footage-siden. Ved hjælp af knappen Opret baggrund-objekt er opretter vi et færdigtekstureret baggrund-objekt til visning af 2D-filmen i renderingen.
Baggrund-objektets teksturtag kan vi nu også bruge direkte på scenesmesh-objektet for indmuringen. Ved at trække teksturtaget med tasten Cmd eller Ctrl og holde den nede, kopierer vi det til scenesmesh-objektet.
For at indmuringen kan modtage skygger fra andre objekter, men ikke selv kaste skygger, tildeler vi scenesmesh-objektet en render-tag via menuen Tags>Cinema 4D Tags i objekt-manageren.
I indstillingsdialogen for render-taget deaktiverer vi derfor muligheden for at "caste shadows" og aktiverer muligheden for baggrundssammensætning.
Nu kan vi placere vilkårlige 3D-objekter i indmuringen, udstyre scenen med mindst et lys, der kaster skygger …
… og indmuringen modtager skygger på de korrekte steder. Ved hjælp af Motion Tracking er det også sikret, at hvert integreret 3D-objekt forbliver på det rigtige sted i genopbyggede 2D-film.