Voor deze tutorial heb ik opzettelijk heel normaal beeldmateriaal gebruikt dat met een smartphone is opgenomen, om dagelijkse problemen tegen te komen. Zo is het zicht op de linker muur heel steil en bewegen sommige planten. Als je de tutorial direct wilt volgen, vind je de gebruikte 2D-film "Mauern.mov" bij het lesmateriaal.
2D-Tracking van het beeldmateriaal
We beginnen de motion-tracking-workflow zoals gebruikelijk met het tracken van de 2D-film. Hiervoor halen we een Motion Tracker-object uit het menu Motion Tracker in een nieuwe, lege Cinema 4D-scene.
Om de Motion Tracker de film te laten analyseren, openen we het instellingendialoog van het Motion Tracker-object in het Attribuut-beheerder op de Beeldmateriaal-pagina. Door te klikken op de Laad-knop in de Beeldmateriaal-regel komen we bij het Open-dialoogvenster.
Daar selecteer je de meegeleverde 2D-film als Beeldmateriaal en laad je deze in het Motion Tracker-object via de knop Open.
De Resample-waarde voor de analyse van het Beeldmateriaal heeft alleen betrekking op de aankomende tracking-operatie voor de Camera-reconstructie. Bij de latere Scène-reconstructie gebruikt Cinema 4D doorgaans de best mogelijke kwaliteit van de film. Maar zelfs voor de Camera-reconstructie kan een hoge waarde (behalve een iets langere rekentijd) geen kwaad.
Voor het 2D-tracking gaan we naar de gelijknamige pagina van het Motion Tracker-instellingendialoog. We beperken ons tot automatisch tracken, omdat we geen specifieke trackingpunten nodig hebben voor de latere opbouw. Zodat er ook voldoende tracking-informatie beschikbaar is, stellen we het Track-aantal in op 2000, met een Minimale afstand van 25.
Na het klikken op de knop Automatische tracks genereren …
… vinden we het gewenste aantal trackingpunten zeer gelijkmatig verdeeld over ons beeldmateriaal.
Om de Motion Tracker iets toleranter te maken bij snelle camerabewegingen, gaan we voor het tracken nog even naar de Opties-pagina en activeren daar de optie Zoekpositie extrapoleren.
Nu kunnen we het 2D-tracking starten op de pagina Automatisch tracking via de knop < Auto-Track >.
Nadat de Motion Tracker zijn werk heeft voltooid, laten we de getrackte 2D-film testen door op de afspeelknop te klikken, om te controleren of gedurende de hele film voldoende trackingpunten behouden blijven.
3D-reconstructie van de camera
Uit deze track-informatie zullen we in de volgende stap de Cameraselectie reconstrueren. Hiervoor gaan we naar de volgende pagina in het Motion Tracker-instellingendialoog, naar 3D-berekening. We kunnen de standaardwaarden voor de Volledige 3D-reconstructie behouden, aangezien de Motion Tracker de Brandpuntsafstand zelf moet bepalen.
Na het klikken op de knop 3D-reconstructie wordt de 3D-berekening van de camerainformatie uitgevoerd.
De resultaten van de 3D-berekening tonen - zoals verwacht - de meeste groene features in goed zichtbare, onbewogen gebieden, terwijl de bewegende planten en de steile linkermuur vanwege de relatief snelle camerabewegingen als het probleemgebied met rode features worden aangemerkt.
Scènekalibratie
Voordat we overgaan tot de scène-reconstructie, kalibreren we de huidige scène met Constraints. Deze stap is theoretisch niet per se nodig voor de reconstructie, maar plaatst de scène meteen in een bruikbaar referentiepunt (oorsprong) en in een correcte asrichting en schaling.
Om de beste trackingpunten te bereiken voor deze stap, verplaatsen we de tijdbalk naar een laat moment dat hoogwaardige trackingpunten garandeert.
We beginnen met het bepalen van de Scène-Oorsprong. Hiervoor wijzen we via het menu Motion Tracker>Constraints een Positieconstraint toe aan het Motion Tracker-object.
Om een trackingpunt als oorsprong van de scène te verklaren, klikken we met de actieve Positiebeperkingstool op een trackingpunt dat in het midden van de vloer ligt. De dikke oranje omlijning van het trackingpunt geeft aan dat de oorsprong nu is bepaald.
We kunnen in het instellingenvenster van de aan het Motion-Tracker-object toegewezen Positiebeperking-tag controleren of de door ons gekozen scène-oorsprong gebonden is aan een hoogwaardig, groen gekleurd kenmerk -doel (hier: Auto 0661).
We gaan verder met een Laagbeperking uit het menu Motion Tracker>Beperkingen, waarbij we de Uitlijning van de Y-as willen instellen.
Met de nu actieve Laagbeperkingstool spannen we een Driehoek door te klikken op drie trackingpunten die op de vloer liggen. Let daarbij ook altijd op de uitlijning van de getoonde as. Met de Verplaatsings-tool kunt u de driehoekspunten achteraf selecteren en testen of deze op andere, mogelijk meer geschikte trackingpunten kunnen worden geplaatst.
Wanneer u tevreden bent met het resultaat, hoeft u alleen nog de gewenste as te definiëren voor de Laagbeperking. Dit gebeurt in het instellingendialoog van de Laagbeperking-tag, waar we de Y-as kiezen.
In de laatste stap van de kalibratie stellen we ook de uitlijning van de Z-as en tegelijkertijd de Schaal van de scène in. Hiervoor halen we een Vectorbeperking uit het menu Motion Tracker>Beperkingen.
Met het creëren van de Vectorbeperking krijgen we een lijn te zien in het 3D-beeld, die we verplaatsen naar twee geschikte trackingpunten aan de rechtermuur om de positie van de Z-as te definiëren.
Nadat de lijn is gepositioneerd over twee trackingpunten die parallel liggen aan het verloop van de muur, openen we het instellingendialoog van de Vectorbeperking-tag en stellen daar in dat de Vectorbeperkingslijn de Z-as definieert.
Tegelijkertijd met het definiëren van de Z-as voeren we ook meteen de Schaal van de scène uit. We stellen de voorgeschreven Lengte in op Bekend en geven een schatting van de lengte van de lijn (in mijn geval 1,5 meter). Zoals te zien is aan de groene kleuring van de beide lijndoelen, zijn ook deze trackingpunten goed geschikt voor de kalibratie.
Na het voltooien van de kalibratie schakelen we door te klikken op het kleine camera-symbool naast de gereconstrueerde camera kort over naar de editorcamera om de tot nu toe gereconstrueerde scène te bekijken.
Zoals gewenst ligt de vloer van de ommuring in het XZ-vlak van ons wereldcoördinatensysteem. Gezien de oneffenheid van de vloer en de zeker niet loodrechte muur, kunnen we tevreden zijn met dit resultaat.
3D-reconstructie van de ommuring
Na het nu eindelijk uitgevoerde voorwerk komen we bij de eigenlijke vernieuwing in Release 19, de reconstructie van de scène op basis van de 2D-filmgegevens.
We gaan naar de laatste pagina van het instellingendialog van het Motion Tracker-object, naar de reconstructie. Hier kiezen we eerst het Preset Hohe Qualität, dat we nog aanpassen aan onze behoeften.
De Scène-reconstructie bestaat uit het genereren van een Puntenwolk en vervolgens het daaropvolgende Meshing, de omzetting van deze Puntenwolk in een Polygon-mesh. Beide zouden automatisch achter elkaar verlopen, aangezien we het Preset Hohe Qualität hebben gekozen. Omdat we echter eerst alleen de Puntenwolk willen hebben om deze voor het Meshing te controleren, activeren we de optie Alleen puntenwolk, voordat we de reconstructie starten door te klikken op de knop Scène-reconstructie starten.
Afhankelijk van de snelheid van de computer kan het nu een paar minuten duren voordat na voltooiing van de Scène-reconstructie een Polygoon-object met een scènepuntenwolk wordt gegenereerd. Dit Puntenwolk-object heeft een Vertexkleuren-tag die de individuele punten van de puntenwolk handig direct met de gereconstrueerde kleurinformatie toont.
In het zicht van de Editor-camera hebben we daarom alleen al met deze gekleurde puntenwolk zeer informatieve informatie over de reconstructie en het te verwachten Meshing.
In dit geval kunnen we uiteraard niet tevreden zijn met het resultaat. Van de achterwand is niets te zien, de vloer wordt slechts met enkele fragmenten weergegeven - het Meshing hebben we terecht overgeslagen.
We moeten dus de instellingen voor de creatie van de puntenwolk aanpassen aan de eisen van onze footage. Enerzijds verlagen we de minimale hoek naar 2° om de reconstructie bij de linker- en achterwand te verbeteren. Hiermee compenseren we het probleem van de scherpe hoek aan de linkermuur en de lage camerabeweging.
Door de patchgrootte te verhogen naar 30 vergroten we het zoekpatroon, wat de kwaliteit van de puntenwolk verbetert. Tot slot deactiveren we de optie Kleine groepen filteren om te voorkomen dat fijne maar belangrijke patches worden gefilterd.
We verwijderen het polygonobject van de oude puntenwolk uit de object-manager voordat we met één klik op de knop Scenereconstructie starten een nieuwe poging wagen.
De creatie van de puntenwolk zal door de aangepaste reconstructieparameters iets langer duren, maar het resultaat mag er zijn.
De vloer en de achterwand zijn nu ook aanwezig, maar bij de linkermuur valt vanwege de slechte camerahoek niet veel meer te halen. Maar dat is niet erg, want voor niet of nauwelijks zichtbare gebieden is uiteindelijk geen fijnmazig mesh nodig.
Met deze puntenwolk kan een succesvolle meshing plaatsvinden. Om de verwerking van de puntenwolk tot een polygonmesh te starten, klikken we op de meshing-pagina in het Meshing-gedeelte op de knop Mesh genereren.
Ook deze processtap is vanwege de ingestelde hoge kwaliteit enigszins tijdrovend, maar na enkele minuten wachten krijgen we bijna overal een gesloten polygonmesh te zien.
Voor het gereconstrueerde scènemesh is een nieuw polygonobject gemaakt. Aangezien we nu met dit object verder zullen werken, kunnen we de zichtbaarheid van de scènepuntenwolk en - indien nog niet gedaan - van het motiontracker-object in het weergavevenster uitschakelen via de verkeerslichtknoppen in de object-manager.
Aangezien het scènemesh-object ook een vertexkleuren-tag heeft, ...
... zien we bij het selecteren van de vertexkleuren-tag in de object-manager het met de footage gekleurde gereconstrueerde mesh.
Hier worden de eerder besproken problematische gebieden van de reconstructie door de kleurvervormingen nogmaals benadrukt. We zijn echter alleen geïnteresseerd in een eenvoudig polygonmesh van de ommuring, dus kunnen we dit gerust negeren.
Wat we niet moeten negeren, is het kleine polygonale gat in de linkerachterhoek. Om dit gat te sluiten, selecteren we het polygonobject van het scènemesh en roepen we de tool Polygongat sluiten op uit het menu Mesh>Creëren
Deze tool detecteert het storende gat in het scènemesh zodra we met de muisaanwijzer over een aangrenzende rand bewegen, en sluit het gat zodra we erop klikken.
Het polygonmesh gladstrijken
De hoge resolutie van de scène-reconstructie resulteert natuurlijk in een zeer onrustig meshoppervlak. Als we het polygonobject van de ommuring nu zouden onderwerpen aan een Subdivision Surface-generator om het te gladstrijken, zou de scène door de extra onderverdeling van het mesh alleen maar ingewikkelder worden.
In plaats daarvan selecteren we het polygonobject en halen we terwijl we de Shift--toets ingedrukt houden een Gladde deformer uit het menu Creëren>Deformer.
Door de Shift--toets als modifier-toets toe te voegen, plaatsen we de Gladde deformer meteen zoals vereist onder het scènemesh-polygonobject.
We kunnen de instellingen van de Gladde deformer ongewijzigd laten.
Hierdoor ziet het polygonmesh er al veel beter uit. Ons doel van de tutorial, de scène-reconstructie van een ommuring, is bereikt. Laten we nu nog kort bekijken hoe we het polygonobject kunnen textureren en integreren in de 2D-film.
Integratie van het 3D-polygonobject in de 2D-film
Om de gereconstrueerde ommuring als 3D-object in de getrackte film te integreren, moeten we enerzijds de 2D-film als achtergrond beschikbaar stellen en anderzijds de ommuring voorzien van een frontaal geprojecteerde materiaaltextuur.
Hiervoor halen we het instellingenvenster van het Motion Tracker-object naar voren en gaan naar de Footage--pagina. Via de knop Achtergrond-object maken creëren we een gekant-en-klaar getextureerd achtergrond-object voor de integratie van de 2D-film in de rendering.
De textuur-tag van het achtergrond-object kunnen we nu ook direct gebruiken voor het scène-mesh-object van de ommuring. Door de textuur-tag ingedrukt te houden met de Ctrl- toets ingedrukt, kunnen we deze kopiëren naar het scène-mesh-object.
Zodat de ommuring wel schaduwen van andere objecten ontvangt, maar zelf geen schaduwen werpt, wijzen we het scène-mesh via het menu Tags>Cinema 4D Tags in de object-manager een render-tag toe.
In het instellingendialoog van de render-tag schakelen we dus de optie Schaduw werpen uit en activeren we de optie Achtergrond-compositing.
Nu kunnen we willekeurige 3D-objecten in de ommuring plaatsen, de scène minstens voorzien van een licht dat schaduwen werpt …
… en de ommuring ontvangt schaduwen op de juiste plaatsen. Dankzij de motion-tracking is bovendien gegarandeerd dat elk geïntegreerd 3D-object ook op de juiste plek blijft in de gereconstrueerde 2D-film.