Cinema 4D R19: Neue Funktionen

Szenen-Rekonstruktion

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Motion Tracking wurde in Release 19 um eine Szenen-Rekonstruktion erweitert, mit der Geometrie aus einem zuvor erfolgten Tracking berechnet werden kann. Nutzen Sie dieses Verfahren für die Rekonstruktion einfacher Landschaften, Gebäude oder Objekte.

Transkript

Bereits seit einigen Versionen in Cinema 4D enthalten ist der sogenannte Motion Tracker. Mit dem Motion Tracker können wir Video- oder Bildsequenzen nachverfolgen lassen und auf diese Art und Weise dann 3D-Kamera-Fahrten oder auch sogar einfache Objektbewegungen aus diesen Videos extrahieren. In diesem Bereich gibt es jetzt eine Neuerung, denn wir können nachdem, dass eigentliche Tracking abgeschlossen wurde, jetzt aus dieser generierten Kamera-Fahrt und den bereits im Raumgruppe gesetzten Features, also diesen kleinen Tracking-Punkten, auch eine Szenenrekonstruktion starten. Damit ist gemeint, dass wir Objekte und Gegenstände, die in dem Video zu sehen sind, tatsächlich dreidimensional als Geometrie generieren lassen können. Das Ganze basiert so ein bisschen auf dem gleichen oder ähnlichen Prinzip, was auch in der Photogrammetrie eingesetzt wird. Da gibt es ja mittlerweile einige Applikationen, wo man aus einzelnen Fotos eines Objekts dann tatsächlich ein 3D-Objekt generieren lassen kann. Und ja auch so ähnlich funktioniert das jetzt hier auch mit dem Motion Tracker. Da der Vorgang als Ganzes natürlich ein bisschen zeitintensiv ist, habe ich hier etwas vorbereitet und vorgearbeitet, allerdings nur zu der Stelle, wo wir tatsächlich die Neuerungen dann auch einsetzen werden, das heißt, das, was Sie jetzt hier im Ansichtsfenster sehen, ist einfach nur eine geladene Bildsequenz von mir. Sie sehen, da wurde ein bisschen mit der Kamera in so eine Höhleneingang hineingeschwenkt. Man sieht also hauptsächlich Felsen, und das Ganze wurde über das automatische Tracking hier praktisch nachverfolgt. Sie sehen, wie die entsprechenden Markierungen auf den Felsen mitlaufen, Sie sehen, 800 Tracks habe ich jetzt hier einfach mal gesetzt und im Anschluss habe ich dann die 3D-Berechnung gestartet. Sie sehen, da ist jetzt hier schon unsere rekonstruierte Kamera, und Sie sehen hier, wenn ich die Animation einmal ein bisschen durchspiele, wie sich diese Kamera simultan zu den Bildern aus der Bildsequenz mitbewegt. So weit, so gut. Jetzt kommt der neue Schritt. Sie sehen schon an der Hervorhebung hier, das nennt sich Rekonstruktion und ermöglicht uns eben jetzt aus dieser Kamera-Fahrt in Verbindung mit den Features, die ja hier schon als nur Objekte im Raum schweben, 3D-Elemente zu kreieren. Dazu gibt es einige Einstellungen, wie Sie sehen, aber es hält sich im Rahmen, es ist alles recht überschaubar, denn der gesamte Prozess gliedert sich in zwei Phasen, von denen die erste Phase die wichtigere ist. In der ersten Phase wird nämlich eine Punktwolke generiert, so wie Sie es hier auch schon als Option sehen können, das heißt, es werden nicht nur die Features genutzt, die wir jetzt schon durch das eigentliche Kamera Tracking erstellt haben, sondern es werden zusätzliche Punkte generiert, weil hier ja durchaus auch größere Lücken klaffen können in diesen Features, und die gilt es natürlich zu stopfen. Und da sind wir auch schon beim Thema, denn hier geht es hauptsächlich darum, die Dichte dieser zusätzlichen Punkte zu steuern und eben zu investieren, wo diese generiert werden sollen. Da gehen wir einmal kurz durch die Parameter durch, dass Sie da eine Vorstellung davon erhalten. Der eigentliche Prozess funktioniert so, dass über jedes Bild der Animation ein gleichmäßiges Raster gelegt wird und in jede Zelle dieses Rasters wird ein Punkt gesetzt. Es geht jetzt also erst einmal darum, wie fein dieses Raster wird, also sprich wie viele Punkte gesetzt werden. Das ist hier dieser Parameter Punktdichte. Der bewegt sich ja in Werten bis zu 8. 8 bedeutet praktisch, dass jeder Pixel eine Zelle in diesem Raster ist, Und das sind natürlich das Maximum, was erzielt werden kann, was aber auch entsprechend dann lange für die Berechnung braucht. Deswegen sind natürlich auch kleinere Werte oftmals sinnvoll, um vielleicht erstmal auszuprobieren, brauche ich überhaupt sowohl Punkte, oder reicht mir das vielleicht schon. Es kommt hier auch ein bisschen darauf an, wo das generierte Objekt nachher eingesetzt werden soll, ob im Vordergrund oder Hintergrund eines Projekts oder einer Szene zum Beispiel. Das heißt, hierüber steuern Sie die Feinheit des Rasters. In dieses Raster jede Zelle rein wie gesagt wird ein Punkt gesetzt, und um den Punkt herum entsteht ein Patch. Das ist der nächste Parameter, den wir haben. Ein Patch ist nichts anderes als das, was wir bereits verwenden beim Tracking, also eine in der Regel quadratische Fläche, in der ein Muster aufgenommen wird aus unserem Hintergrundbild, und dieses wird versucht nachzuverfolgen, also auch in den nächsten Bildern der Animation das gleiche Muster wiederzufinden. Das ist diese Patchgröße. Das bedeutet, dass je größer die Patchgröße eingestellt ist, desto präziser kann natürlich ein bestimmter Abschnitt des Bildes nachverfolgt werden, da werden einfach mehr Details in diesem Patch finden im Gegensatz zu einem zu keinen Patch, wo dann vielleicht nur eine ja homogene Farbe drin zu finden ist, die natürlich gerade bei solchen eher kontrastschwachen Szenen wie hier diesem Felsen an ganz vielen verschiedenen Stellen und vielleicht auch wieder auftaucht, also entsprechend schwieriger nachzuverfolgen ist. Das bedeutet eine größere Patchgröße kann mehr Genauigkeit bieten. Ja, jetzt habe ich schon erläutert, dass diese Patches Bild für Bild nachverfolgt werden. Das ist nicht ganz richtig, weil es gewisse Sprünge gibt, also es wird jetzt nicht Bild für Bild tatsächlich benutzt, sondern man kann es einschränken, nämlich durch diesen minimalen Winkel, den wir hier sehen. Dieser Winkel bezieht sich auf die Bewegung der rekonstruierten Kamera, die wir ja schon vorliegen haben. Das heißt, wir haben schon die Information, wo die Kamera zu welchem Zeitpunkt steht, haben wir schon die Bewegung hier und wir haben durch diese Einstellung hier überall Patches liegen, also quadratische Flächen, und jetzt geht es darum, einfach herauszubekommen, wann ist es sinnvoll, die Verschiebung eines Patches zu berechnen oder nachzufolgen, und dafür kommt dieser Winkel zum Tragen, der im Prinzip den Winkel zwischen einem Patch der Kamera und der Kamera in dem nächsten Bild beschreibt, das heißt, erst wenn dazwischen ein Winkel von mindestens 10 Grad ist, dann wird dieses Patch versucht neu zu platzieren und aus diesen neuen Platzierungen ergibt sich dann praktisch eine Neigung des Patches dann eine Lage im 3D-Raum, sodass dann eben Rückschlüsse gezogen werden können auf die Lage der Oberfläche, wo eben dieser Patch nachverfolgt wird. Und das brauchen wir ja, um zusätzliche Punkte zu kreieren, die dann an dieser Stelle eben projiziert oder gesetzt werden sollen. Ja, ein zweiter Wert spielt da eben so mit rein in diese Patches. Im Prinzip das sind die Texturdetails in Minimum, das heißt, da krallen sich im Prinzip die Patches dann an Kontrastunterschiede oder überhaupt an einen Kontrast, an einen Unterschied in der Helligkeit, und da gibt es jetzt hier so einen Grenzwert, einen Minimalwert, der mindestens eingehalten werden muss zwischen benachbarten Pixeln. Das heißt, wenn wir hier diesen Wert hier absenken, dann werden Patches auch schon dort platziert, wo relativ schwache Kontraste sind, also wo die Strukturen, die er sich merken muss in einem Patch, vielleicht nur aus ganz sanften Farbverläufen oder ähnlichen bestehen. Wenn wir den Wert anheben, dann konzentriert er sich eben auf Ebenen oder auf Bereiche, wo eher starke Kontraste sind. Das kann natürlich hier auch etwas ins Auge gehen, wenn der Wert zu gering gesetzt wird, das heißt, wenn man jetzt krampfhaft versuchen möchte, hier im Bereich mehr Patches, mehr Punkte zu bekommen, die relativ homogene Helligkeiten und Farben haben, denn denken Sie zum Beispiel mal an einen Himmel ohne Wolken. Der hat hier auch nur sehr fließende weiche Helligkeits- und Farbübergänge. Normalerweise da würde dann praktisch ein zu kleiner Wert hier für die Texturdetails dafür sorgen, dass eben auch in den Himmel hinein Patches gelegt werden, wo die absolut keinen Sinn ergeben, wer da nicht mit einer festen statischen Geometrie zu tun haben. Also da gilt es so ein bisschen dann zu experimentieren oder man muss eben in Kauf nehmen, dass man dann bestimmte Bereiche später von Hand einfach wieder löschen muss, wo dieser Patch ist. Keinen sinnvollen Hintergrund hatten keinen Kontrast finden konnten, der auf eine Geometrie zurückzuführen ist. Ja, dann haben wir als nächsten Wert, den ich beschreiben möchte, die Footage praktisch Auflösungsstufe. Footage ist ja das, was wir hier praktisch als Bildsequenz oder Video laden, und da gibt es ja schon diesen Resample-Wert, also praktisch die Größen Einstellungen, die Auflösung, die für das Tracking benutzt wird, und die Rekonstruktion ist eben in der Lage, einen davon völlig losgelösten Auflösungswert zu verwenden. Das heißt, wenn man hier einen Wert von 0 einsetzt, dann benutzt man immer die Originalauflösung des Footages. Alle Werte größer 0 führen dazu, dass entsprechend verkleinerte Varianten verwendet werden, die dann entsprechend schneller natürlich zu berechnen sind, aber der Algorithmus ist insofern clever, als dass er den Wert hier nicht immer absolut nimmt, das heißt, wenn ich etwas eintrage, was größer als 0 ist, dann hat er durchaus die Möglichkeit, auch auf höhere Auflösungsstufen noch zurückzugreifen von unseren Footage, also selbst wenn wir hier den Wert 1 eintragen, hat der Algorithmus, der noch die Möglichkeit in Grenzfällen dann doch, auf die Originalauflösung zuzugreifen. von daher kann man mit dem Wert 1 oftmals sehr gut leben, ändert so ein bisschen einen adaptiven Verfahren das Ganze. Ja, und dann haben wir hier noch die Iterationen. Das sind wie üblich in der Mathematik Durchgänge durch die gleiche Berechnung, das heißt, man kann damit Ergebnisse verfeinern lassen, indem ihm mehrmals über die gleichen Bereiche gerechnet wird und kann damit zusätzlich die Punktdichte steigern, einfach dadurch, dass dann vielleicht in der ersten Iteration weggefallene Patches, weil die dann den Texturdetail Minimum Kriterium hier nicht mehr entsprochen haben oder den minimalen Winkel nicht entsprochen haben, dann eben vielleicht etwas versetzter von ein weiteres neues Patch generieren. Man hat dann die Möglichkeit, eben doch noch relativ in dem Bereich ja neue Punkte zu kreieren. Das sind schon die wichtigsten Parameter, die wir hier haben. Einige davon ich denke mal recht eingängig wie zum Beispiel die Punktdichte und die Iterationen steuern natürlich direkt die Länge der Berechnungszeit. Ganz klar jene Punkte wir haben, also jene Patches berechnet werden sollen und nachverfolgt werden sollen, desto länger dauert das Ganze, und je größer Patchgröße ist, desto genauer wird der Prozess, aber auch desto länger dauert die Suche nach dem entsprechenden Patchmuster bei einer anderen Kamera. Ja, dann haben wir hier noch Kleine Gruppen filtern, denn es ist einfach so, wir sehen es hier schon bei den Nullobjekt-Featuren, die hier im Raum schweben, dass es immer mal wieder so kleinere Grüppchen gibt von Messergebnissen, die aber einfach zu wenig Definition haben, um daraus eine größere zusammenhängende Menge an Punkten oder auch an Geometrie zu generieren, und dann sorgt diese Option dafür, dass solche kleinst Gruppen an Punkten dann zuverlässig ausgefiltert werden. Die machen in der Regel dann auch keinen Sinn, mit Geometrie verbunden zu werden. Es heißt, Ziel ist es eine möglichst große zusammenhängende Masse nachher an Punkten und an Geometrie zu erzeugen. Das wäre der obere Teil, der sich nur mit der Generierung der Punktwolke beschäftigt. Man kann es sogar auf diesen Punktwolke-Effekt begrenzen, indem ich hier die Option für Nur Punktwolke anhake, das heißt, die ganze Berechnung wird dann darauf hinaus laufen, wenn nur Punkte erhalten und keine Geometrie. Das kann man durchaus machen, um erst einmal die Werte hier zu testen, bevor dann in einem zweiten Schritt die Geometrie erzeugt wird. Und der zweite Schritt nennt sich Meshing, wo wir hier nur zwei Parameter haben, die auch noch relativ ähnlich funktionieren. Da geht es nämlich hauptsächlich darum, wie die Größe der generierten Polygone gesteuert werden kann. Und da ist es so, dass besonders die Fotometrische Wichtung, wenn man den Wert hier anhebt, dafür sorgt, dass zu große Polygone unterdrückt werden und stattdessen ersetzt werden durch kleinere Polygone, was natürlich die Genauigkeit dann steigern kann. Das heißt, beide Werte im Prinzip funktionieren ähnlich, versuchen also große Polygone zum Schließen von Flächen zu vermeiden und durch kleinere zu ersetzen, und der zweite Wert Fotometrische Wichtung hat den Vorteil, dass er etwas genauer ist aus dem Grund, weil er auch die Kontrastverhältnisse in Footage zusätzlich noch mal mit heranziehen kann, deswegen fotometrisch. Das wären schon alle Einstellungen. Sie sehen, hier oben gibt es auch dann noch Presets, also Voreinstellungen, wo dann einfach mehr oder minder gängige Werte schon einmal zusammengefasst wurden in verschiedenen Genauigkeiten. Sie sehen, bei der Vorschau-Preset wie zum Beispiel automatisch nur eine Punktwolke generiert mit relativ niedriger Dichte und bei dem hohen Qualitäten haben wir dann entsprechend viele Punkte und Patches, aber das lässt sich alles eben noch steigern vor allen Dingen hier durch den Parameter Patchgröße, wenn man den noch weiter anhebt. Dann kann man das Ergebnis in der Regel noch weiter verbessern. Und auch hier die Punktdichte, da haben wir ja auch immer noch die Luft bis auf den Maximalwert 8. Also da könnte man dann auch noch das Ganze etwas steigern. Gut, soweit zu den Parametern. Im Prinzip läuft das Ganze darauf hinaus, dass man wahrscheinlich erst einmal nur die Punktwolke generiert und mit niedrigen Einstellungen startet und sich dann einmal ansieht, was da überhaupt dabei herauskommt, das heißt, man klickt hier auf Szenenrekonstruktion starten, dann durchläuft der Algorithmus hier diese entsprechenden Iterationen, baut das Raster für die Punkte auf. In dem Raster werden Patches generiert. Die Patches werden überprüft, ob sie dem Texturdetail Minimum hier entsprechen, ansonsten fallen die automatisch weg, und dann wird eben automatisch nachverfolgt, wenn die Kamera sich mindestens diese 10 Grad relativ zu dem Patch bewegt hat. Wie Sie sehen, jetzt sind wir auch schon fertig. Das geht noch relativ schnell mit diesen niedrigen Einstellungen hier. Ich gehe mal auf eine zentralperspektivische Einstellung und lasse mir mal die anderen Features hier wegblenden. Dann sehen Sie hier, so sieht eine Punktwolke ungefähr aus. Die Filterung der kleinen Gruppen war hier ausgeschaltet. Deswegen fliegen hier noch so etwas unmotiviert ein paar Punkte in der Gegend rum. Aber Sie sehen, diese Punkte sind auf jeden Fall mehr, als wir bei den Features hatten, und liegen auch an anderen Stellen, das heißt, die kommen auf jeden Fall noch zusätzlich dazu. Und was sehr positiv ist, diese Punkte, die generiert werden, die erhalten automatisch Farben dank eines Vertex-Farben-Tags, was Sie hier sehen. Und da ist ja die eine neue Option, die wir hier haben, dass diese Punkte immer angezeigt werden. Also selbst wenn dieses Tag nicht angewählt ist, sehen wir diese Punkte im Raum schweben und können anhand der Farben auch schon grob abschätzen, in welchem Bereich diese Punkte liegen werden. Gut, jetzt geht es im Prinzip nur darum, die Einstellung zu optimieren. Und da werde ich mich jetzt hier einmal drangeben und entsprechend die Werte etwas höher setzen. Die Berechnungszeit wird entsprechend in die Höhe schießen. Deswegen werden wir das Live in dem Video jetzt hier nicht mehr zeigen, aber ich nehme jetzt einfach mal ein paar entsprechend bessere Werte. Und dann schauen wir gleich mal nach der Berechnungszeit, was hier da herauskommt, wobei ich jetzt bereits hier diese Nur Punktwolke-Option ausschalte. Das heißt, wenn wir die Szenenrekonstruktion starten, wird eine neue Szenenpunktewolke erstellt und dann in einem zweiten Berechungsschritt etwas später ein zweites Objekt, was die eigentliche Geometrie erhält. So, wie nun zu sehen ist die Berechnung beendet. Werde jetzt einmal dieses alte Objekt mit den nur gering aufgelösten Punkten löschen. Sie sehen, es sind zwei neue Objekte entstanden, einmal die Punktewolke und einmal das entsprechende Mesh. So wenn ich das Mesh einmal unsichtbar schalte, sehen Sie, dass die Punkte bereits so dicht gesetzt sind, dass wir hier schon nahezu von einer Geometrie sprechen können, zumal die Punkte hier auch die Färbung aus dem Footage übernehmen. Es entstehen aber auch hier sehr viele Bereiche die im Laub oder im eher nur kurz in Footage zu sehnen Teile der Höhle hier angesiedelt sind. Das sind dann die Bereiche, von denen wir sicherlich keine hohe Auflösung erwarten können. Die werden wir nachher löschen müssen. Aber der Bereich, der am längsten gefilmt wurde unter verschiedenen Blickwinkeln, kommt hier schon ganz gut rüber. Das heißt, wenn wir die Punktwolke einmal ausblenden und stattdessen das Mesh uns ansehen und auch hier auf eine Darstellung ergehen, die schattiert, dann sehen wir hier tatsächlich, dass hier Geometrie entstanden ist in dem Bereichen, wo viel Efeu war, dort wie zu erwarten nicht sonderlich exakt, aber die Bereiche, wo wir die Felsen hier gesehen haben, da sieht das Ganze schon recht ordentlich aus. Und wir haben hier zusätzlich auch wieder einen Vetex-Farben-Tag zugewiesen, wo allerdings jetzt dieses immer anzeigende Punkte deaktiviert wurde. Kann man natürlich nachträglich machen, aber dadurch versperren wir uns ein bisschen den Blick auf die eigentliche Geometrie. Sinnvoller ist es in dem Fall, ein neues Material tatsächlich zu kreieren und dort zum Beispiel in den Farbekanal hinein den Vertex-Map-Shader aus den Effekte/Shadern zu laden und dann entsprechend hier die Vertex-Farben zuzuweisen. Das heißt, wenn wir das jetzt hier auf unseren Szenenmesh legen und dann einfach bei rendern lassen, dann sehen Sie, wie hier die Farben aus dem Vertex-Farben-Tag übernommen werden für die Texturierung. Und das Schöne ist, dass wir uns dafür keine UV-Koordinaten extra erzeugen müssen, sondern dass das unabhängig davon funktioniert. Nach wie vor gibt es hier einige Bereiche, die nicht geschlossen werden konnten, seit dadurch, dass da sehr feine Efeu-Strukturen waren oder eben Schattenbereiche oder auch dass es einfach ungenügend viele Blickwinkel auf diese Bereiche nur zur Verfügung standen oder eben ein zu geringer Kontrast, dass wären an Stellen, die man gegebenenfalls nachträglich manuell schließen müsste. Dadurch ergibt sich natürlich eine Interpolation der benachbarten Farbwerte an den Punkten, oder man nutzt das Ganze wirklich nur zum Nachmodellieren, weil wir natürlich hier eine sehr hohe Punktdichte erhalten haben. Allerdings muss ich auch noch gestehen, dass ich die Werte dann noch mal reduziert hatte, weil mir das mit den ursprünglich eingetragenen Werten hier zu lange gedauert hat. Sie sehen, die Iteration habe ich hier auf 1 reduziert und die Punktdichte auf 7 und ja, um einfach in absehbarer Zeit Ihnen ein Ergebnis darstellen zu können, so ist das ungefähr, was Sie erwarten können von dieser Funktion. Je besser der Kontrast auf dem dargestellten Objekt ist, desto besser wird sicherlich die Rekonstruktion sein können. Und na ja, Sie sehen es hier, am rechten Teil vermeiden Sie einfach Bereiche mit zu feinen Details, zu dünne Details oder auch wie beim normalen Tracking auch Bereiche, Reflektionen eventuell darauf wandern während des Trackings oder Schatten sich verändern. Das sind alles Dinge, die natürlich auch für die Patch-Nachverfolgung dann hinderlich sein können, und entsprechend dann die Platzierung von Punkten in diesen Bereichen nicht so gut funktionieren kann. Soweit von der Szenenrekonstruktion, also durchaus ein spannendes Hilfsmittel. Probieren Sie es einfach mal aus mit einigen vielleicht Handy-Videos oder auch professionell aufgenommenen Videos, indem Sie da ein bisschen auf diese angesprochenen Punkte achten, dass man eben schöne Kontraste auf den Objekten hat, die nachverfolgt werden können, und dann ist es sicherlich für einfachere Aufgaben auf jeden Fall eine Alternative zu fotometrischen Berechnungen in externen Applikationen.

Cinema 4D R19: Neue Funktionen

Sehen und verstehen Sie die neuen Funktionen von Maxons Cinema 4D Release 19.

6 Std. 4 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:08.09.2017
Laufzeit:6 Std. 4 min (40 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!