Of het nu gaat om een animatie of een single-frame compositie, de vraag om 3D-objecten te integreren in live action of live beelden wordt steeds vaker gesteld. Met camera kalibreren is dit ook in CINEMA 4D geen heksentoer. Om het tutorial stap voor stap te volgen, vinden jullie het bestand "PSD_C4D_R14_Kamera-Matching_start.c4d" met de startpositie onder de werkbestanden.
Opzet van de scene
Zodat we meteen kunnen beginnen met het opzetten en afstellen van de camera, heb ik in het oorspronkelijke bestand een kleine deeltjessysteem voorzien, dat we later zullen integreren in het scenario dat is gecreëerd met camera-matching.
Een relatief vlakke, maar des te bredere emitter creëert drie verschillend gekleurde ballen. Dankzij de geïntegreerde zwaartekracht-modificator worden de baldeeltjes niet alleen uitgestoten, …
… maar vallen ze ook naar beneden, volgend op de zwaartekracht, zoals we kunnen zien na een klik op de afspeelknop. Zodra onze scene een vloer heeft, zullen we de ballen ook laten stuiteren.
Instellen van de camera
Zodat de ballen ons niet in de weg zitten tijdens de volgende stappen, zetten we de emitter eenvoudigweg uit met behulp van de verkeerslichtschakelaar in de objectmanager, en maken we deze onzichtbaar.
Laten we beginnen met het invoegen van het live beeld door een nieuw camera-object aan te maken. Dit camera-object stelt zich in op het fotografische beeldmateriaal door onze volgende kalibratie. Om de camera de functionaliteit van kalibratie te geven, wijzen we het camera-object in de objectmanager een camera-kalibreren-tag toe via het contextmenu met de rechtermuisknop of via het menu Tags>CINEMA 4D Tags.
In het instellingendialoogvenster van de camera-kalibreren-tag vinden we op de beeldzijde de functies om het beeldmateriaal te laden en af te stemmen. Op dit moment moeten jullie hebben gecontroleerd welke beeldverhouding het fotomateriaal heeft. We klikken op de knop naast het veld Afbeelding …
… en laden via het Bestand-openen-dialoogvenster het gewenste live beeld in de camera. Voor dit tutorial heb ik het laadgebied van een bedrijfsterrein geleverd als afbeeldingsbestand "Ladebereich.jpg". Aan de metadata van de afbeelding kun je zien wat de corresponderende beeldverhouding is: 3264 x 2448 = 4:3.
Nadat het beeld is geladen met de Open-commando, vinden we de ingeladen afbeelding in het zichtbare gebied van onze camera.
Voordat we beginnen met het kalibreren van de camera op de afbeelding, activeren we de camera via het camerasymbool in de objectmanager (wit).
Kalibreren van de camera
Voor het volgende kalibreren van de camera schakelen we in het instellingendialoogvenster van de camera-kalibreren-tag over naar de Kalibreren-pagina.
Zoals je kunt zien, staan alle verkeerslichten voor de kalibratiestatus nog op rood vanwege het ontbreken van vluchtpunten - dat zal nu veranderen.
Omdat het door de inhoud van de afbeelding niet logisch is om met enkele lijnen te werken, maar met een vierzijdige raster, creëren we via de knop Raster maken in de eerste stap van de kalibratie een rasternet.
In onze afbeelding is het niet moeilijk om "loodrecht op elkaar" lopende lijnen te vinden. Voor het eerste punt van het rasternet gebruiken jullie het beste een van de hoeken onder de helling.
Met het tweede punt van het rasternet spannen jullie het raster zo exact mogelijk "evenwijdig" met de rand van de helling. Ik heb dit hoekpunt in de hoek van de regenpijp onder de helling geplaatst.
Met het derde hoekpunt beginnen we de loodrecht lopende rand van het rasternet aan de eerste zijde. Oriënteer je het beste aan de korte sectie van het plaveisel en schuif het hoekpunt zover naar links totdat de rasterlijn parallel loopt met de betonnen steun van de helling.
De positie van het vierde hoekpunt ligt weliswaar buiten de daadwerkelijke afbeelding, maar vormt geen probleem bij de aanpassing van het raster. Zorg er gewoon voor dat de lijnen precies parallel lopen aan de randen van de betonnen helling.
Nadat het raster nu is geplaatst op de afbeelding, moeten we de bijbehorende randen de asrichtingen toewijzen voor het bepalen van de vluchtpunten. Hiervoor plaatsen we de muisaanwijzer op een van de rasterlijnen en klikken met de Shift-toets ingedrukt zo vaak op de lijn totdat de juiste asrichting voor de rasterlijnen aanwezig is. In mijn geval definieert de rode rand van de betonnen helling de X-asrichting, loodrecht daarop definieert de blauwe rand de Z-asrichting.
Een blik op de LED-display in het instellingendialoog van de Camera kalibreren-tag onthult ons dat van het geplaatste raster al de brandpuntsafstand en de camerarichting konden worden bepaald.
Met de knop Lijn aanmaken creëren we nu een lijn om de Y-as te definiëren.
Voor het positioneren van de lijn voor de Y-as, kiezen we een rand die loodrecht op het raster staat - in mijn geval de voorste rand van de betonsteun.
Ook aan deze lijn moeten we nog doorgeven welke as we met het definiëren ervan willen bepalen. Opnieuw door te klikken met ingedrukte Shift-toets kleuren we de lijn groen om de Y-as van de afbeelding vast te leggen.
Nadat we alle drie coördinaatassen in de afbeelding hebben getekend, ontbreekt voor een veilige oriëntatie alleen de oorsprong, het assenknooppunt van de scène. Dit wordt ingevoegd met een pin, die we krijgen via de knop Pin aanmaken.
We pakken de pin met de muis en plaatsen deze op het onderste punt van de groene Y-aslijn. Hier zal in de toekomst het assenknooppunt van de scène voor deze camera zijn.
We werpen opnieuw een blik in het instellingendialoog van de Camera-kalibreren-tag en zien dat de camerapositie kon worden berekend vanuit de door ons verstrekte informatie over de vluchtpunten en asrichtingen. Nog meer groene velden krijg je met verdere hulp in de vorm van extra lijnen naar vluchtpunten.
Scene opzetten
Onze camera is nu gekalibreerd op het door ons gegeven beeldmateriaal. Nu is het tijd om de scène te voorzien van alle objecten die nodig zijn voor onze animatie.
Handig genoeg biedt de Camera kalibreren-tag meteen een automatisch proces voor het maken van een achtergrond. Door te klikken op de knop Achtergrond maken genereren we een Achtergrondobject met een voorgemapt Achtergrondtextuur gebaseerd op ons camerabeeldmateriaal.
Hiervoor werd een Materiaal gemaakt en met een Textuur-tag op het Achtergrondobject geplaatst. Een blik op de Basispagina van het materiaal onthult dat hier alleen de Kleurkanaal wordt gebruikt.
Zodat de ballen die via het deeltjessysteem worden afgevuurd een botsingsoppervlak in de vorm van een vloer krijgen, halen we een Vloerobject uit de Primitieven-palette naar de scène. Het bekende Vloerobject is niet geschikt voor onze doeleinden omdat het oneindig uitgestrekt is en problemen zou veroorzaken bij het correct werpen van schaduwen.
In het instellingendialoog van het Vloerobject zie je de door mij geschatte Breedte en Diepte van het object, samen met een offset van -1500 cm in de Z-richting over de coördinaten.
Omdat we willen dat de vallende ballen alleen schaduwen werpen op het vrije terrein van de binnenplaats (alles anders zou het driedimensionale effect vernietigen), moet de vloer slechts tot net achter de rand van de laadklep reiken. Indien nodig corrigeer je dit eenvoudig door aan de Parameterhandgreep van het Vloerobject te trekken.
Dit nieuw geïntegreerde object in de scène heeft natuurlijk ook een passende Textuur nodig. Hiervoor gaan we tijdelijk naar het instellingendialoog van de Camera kalibreren-tag en maken gebruik van de automatisering om een Camera Mapping-tag te genereren.
In tegenstelling tot het achtergrondobject, hebben we voor het correct textureren van het laagobject, de projectiemodus Camera-Mapping nodig, die we precies via deze knop krijgen.
De nieuw gecreëerde textuurtag op het cameraobject, verplaatsen we naar de juiste plek in de objectmanager, natuurlijk op het laagobject.
Bij het creëren van de nieuwe textuurtag, is er ook een nieuw materiaal ontstaan met de textuur van het laadgebied. Voor onze doeleinden is dit materiaal echter ongeschikt, aangezien de textuur in het lichtkanal ligt en de schaduwen van de ballen op de grond zou onderdrukken.
Dit kunnen we heel eenvoudig corrigeren door gewoon het reeds bestaande materiaal (niet de textuurtag!) van het achtergrondobject te gebruiken voor de texturering van het laagobject. Daartoe slepen we het materiaal óf rechtstreeks naar de textuurtag in de objectmanager óf in het veld materiaal van de textuurtag in de attribuutmanager.
Zodat het getextureerde laagobject bij latere lichtinval geen naar donker vervagende schaduwgebieden krijgt, geven we het per contextmenu met de rechtermuisknop of via het menu Tags>CINEMA 4D Tags in de objectmanager een render-tag, …
… waarin we de optie achtergrondcompositing activeren. Nu is het laagobject optimaal geïntegreerd in de scène en gedraagt het zich als onderdeel van de realistische afbeelding.
Om het deeltjessysteem in de scène te integreren, schakelen we de emitter via de verkeerslichtschakelaar in de objectmanager naar zichtbaar en deactiveren tijdelijk de door ons opgezette en gekalibreerde camera. Dit kan snel worden gedaan via het camerasymbool in de objectmanager of via het menu camera's in de editorweergave.
Vanuit dit perspectief zien we voor het eerst de gekalibreerde camera als element van de scène en - zeer nuttig voor ons - het deel van het laagobject getextureerd via camera-matching. Stel de emitter nu via de axis-handles of de waarden in de attribuutmanager zo in dat de ballen dwars over het beeldoppervlak springen.
Zodat de uitgestoten ballen niet door het laagobject vallen, maar er vanaf stuiteren en verder springen, stellen we naast de zwaartekracht nog een reflector in. Je vindt deze modifier in het menu simuleren>deeltjessysteem.
In het instellingendialoog van het reflectorobject stellen we de elasticiteit in op 70%, zodat de ballen na hun botsing weer meer dan tweederde van de valhoogte terugkaatsen. Een grootte van 10000 cm in X- en Y-richting zou voldoende moeten zijn om alle uitgestoten ballen gedurende de animatieduur op de grond te houden.
Zoals je aan de Y-coördinaat van de reflector ziet, ligt het reflectorenvlak net boven het laagobject. Bij ons eenvoudige deeltjessysteem is het middelpunt van het deeltjesobject (straal van de bal = 30 cm) van belang, vandaar de noodzaak van deze offset. Overigens heb ik 5 cm afgetrokken om de ballen lichtjes in het oppervlak te laten dompelen.
Vanuit het perspectief van voren is goed te zien hoe de uitgestoten ballen tot aan de gele reflectorlijn vallen en van daar terug omhoog stuiteren.
Verlichting van de scène
Nadat de camera is gekalibreerd en de 3D-objecten in de vorm van het deeltjessysteem in de scène zijn geplaatst, moeten we nog zorgen voor passende verlichting.
We creëren voor het schaduwwerpende hoofdlicht van de scène een lichtobject, waar we op de algemene pagina van het instellingendialoog een lichtblauwe tint aan geven. Dit om de door de lucht veroorzaakte blauwe gloed die op het gebouw en de grond zichtbaar is, ook op de ballen over te brengen.
Ook activeren we een zachte schaduw of naar keuze een gebiedsschaduw voor het hoofdlicht van de scène.
Op de schermafdeling van het instellingendialoog heb ik voor mijn zachte schaduw de dichtheid met 70% verminderd en gekozen voor een schaduwmap van 500x500. Hierdoor lijkt de schaduw natuurlijker, doordat het oplichting door indirect licht nabootst.
Voor de positionering van dit hoofdlicht is het de moeite waard om tijdelijk over te schakelen naar de standaardcamera om er zeker van te zijn dat de lichtbron zich ver boven het verlichte gebied bevindt. Uiteindelijk moet het zonlicht redelijk realistisch worden gesimuleerd. Plaats de lichtbron dusdanig dat ons hoofdlicht zo loodrecht mogelijk op de objecten of de vloer valt - dit komt ook overeen met de lichtinval op ons echte beeld.
Aangezien de uitgestraalde ballen tot nu toe alleen van boven worden verlicht, hebben we nog meer lichtbronnen nodig om de indirecte verlichting vanuit de richting van de camera te simuleren. We creëren twee identieke puntlichtbronnen met een lichtgele kleur en verminderen hun intensiteit tot ongeveer 58%, zodat deze lichtbronnen niet te dominant zijn.
De eerste van deze twee zogenaamde vullichten positioneren we aan de linkerkant van de camera. In de Y-richting mag het rustig op de hoogte van de vloer blijven, omdat we alleen de indirecte verlichting vanaf de zijkant en vanaf de vloer willen simuleren.
Het tweede vullicht positioneren we aan de andere kant tegenover het eerste vullicht. Als u niet zeker weet of er voldoende verlichting op de ballen valt, laat dan de animatie even lopen en schakel ook in de orthogonale weergaven de Gouraud-shading in.
Met de ingeschakelde geavanceerde OpenGL in de Editor-weergave inclusief schaduwvoorbeeld, kan de scène nu heel goed beoordeeld worden. Niet alleen de schaduwen zien er realistisch uit, ook de gesimuleerde indirecte verlichting zorgt ervoor dat de onderkanten van de bollen niet in het donker liggen.
Hier is ter vergelijking het gerenderde resultaat van onze nu voltooide tutorial. Onze 3D-objecten zien er overtuigend uit in de scène die eigenlijk alleen uit een eenvoudige foto bestaat.