Posts

Deel 1: Introductie

Afbeelding
Hey hallo! En welkom bij de tutorial Photogrammetry voor games met eenvoudige middelen Photogrammetry en photoscanning, het zijn technieken waar je misschien wel eens van hebt gehoord. Maar wist je dat het op kleine schaal ook van toepassing is? En dat het veel meer binnen handbereik is dan dat je misschien zou denken? Photogrammetry is zeker niet alleen voor grootste realistische objecten die gebruikt worden door AAA studio’s en filmstudio’s met een groot budget. Wist je bijvoorbeeld dat er een gratis photogrammetry programma bestaat genaamd Meshroom? En dat je zelfs een mobiele telefoon kan gebruiken voor de foto’s die je moet maken? Met deze tutorial ga ik laten zien hoe je met photogrammetry kleine objecten kan omzetten naar een 3D model. Om even een voorbeeld te geven van dit verschil in apparatuur en doeleinden, hier twee photogrammetry projecten! Als eerste is een project van Force Field, die voor de National Geographic Explore VR app de hele Machu Picchu hebben gef...

Deel 2: Set-up voor foto's

Afbeelding
Met photogrammetry is het lastig om kleine en smalle objecten te fotograferen als je de normale manier van foto’s maken toepast. De standaard manier van foto’s maken gaat zo: Het object staat op een vaste plaats en de gebruiker loopt om het object heen en maakt veel foto’s van verschillende hoogtes en hoeken. Het photogrammetry programma baseert onder andere door de achtergronden op de foto’s hoe de vormen van het object zijn en waar de foto’s gepositioneerd zijn. Voor deze tutorial laat ik een andere manier van foto’s maken zien, omdat dat voor kleine en smalle objecten stukken beter werkt. Dus wat gaan wij dan doen? Eigenlijk gaan we het photogrammetry programma proberen te foppen! Want in plaats van om het object heen te lopen, houden we de camera op dezelfde plaats en roteren we juist het object. Ook gaan we een achtergrond gebruiken die heel monotoon is, bijvoorbeeld een wit vel papier. Het programma kan dan niet meer de achtergrond gebruiken om af te leiden wat alle camerapunten ...

Deel 3: Foto's maken

Afbeelding
We zijn nu aangebroken bij het deel waarbij we daadwerkelijk foto’s gaan maken. Hier valt niet heel veel over te vertellen, maar er zijn toch een aantal dingen waar je rekening mee moet houden. Ik ga nu eerst uitleggen hoe de methode die ik heb benoemd precies werkt. We gaan het object dus per foto een klein beetje roteren: Neem een foto Draai je object een klein beetje, Neem weer een foto, Draai je object een klein beetje, etc.! Zorg dat je minimaal 30 foto’s maakt van deze rotatie. Als je een rotatieronde af hebt, leg je het object op een andere zij en herhaal je het proces opnieuw zoals hierboven omschreven. Het voordeel van deze methode is dat je het object rondom fotografeert. Dus ook de onderkant! Zeker bij het maken van gameobjects is het fijn als je model vanuit elke hoek goed te bekijken is. Soms is het zelfs nodig dat het object een überhaupt een onderkant heeft.  Hier een reeks foto’s van mijn project achter elkaar, dat ziet er dan zo uit: (Zoa...

Deel 4: Meshroom

Afbeelding
Ik gebruik dus Meshroom, een GRATIS open source photogrammetry programma van Alice Vision. Je kan het hier downloaden: https://alicevision.org/#meshroom Op dit moment van schrijven is de versie 2019.2.0 de nieuwste en ook de versie die ik gebruik. Hiervoor gebruikte ik de 2018 versie, maar die werkte voor mijn laptop niet goed. !! Zoals eerder vermeld heb je voor Meshroom wel een grafische kaart van NVIDIA nodig !! Goed, download Meshroom en open het! Ik neem je eerst even mee in wat je ziet. De interface is vrij simpel: 1) Hier komen al je foto’s te staan die je hebt gemaakt van het object 2) Als je op een foto klikt bij Images, krijg je het in de Image Viewer groot te zien in plaats van een thumbnail. Kan handig zijn om te kijken of er foto’s, bijvoorbeeld, wazig zijn. 3) De 3D viewer, hier krijg je tijdens en na het renderen te zien wat het programma voor 3D model gaat maken. Je ziet de standen van de camerahoeken en zogeheten Point Clouds. Als de render klaar is kan je hie...

Deel 5: Retopology

Afbeelding
Bij het starten van de render in Meshroom is er een map aangemaakt genaamd MeshroomCache. Daar is er per node een map aangemaakt. En daar kan je dus ook je 3D model file vinden (.obj) en de texure file. Je kan ook vanuit Meshroom direct naar die map door met je rechtermuisknop op de node van Texturing te klikken: En nu door naar Retopology! Voor games is het heel belangrijk dat de 3D modellen niet te veel polygonen hebben. Omdat je gamewereld uit veel verschillende 3D modellen bestaat, moet het niet te zwaar worden voor de hardware om alles te berekenen. Photogrammetry modellen zijn vaak juist extreem highpoly, om het toegankelijk te houden voor meerdere toepassingen. Want het wordt door veel verschillende werkvelden gebruikt, zoals bijvoorbeeld archeologie en geologie. Om een lowpoly model te maken moet je het photogrammetry model gaan retopologizen, met als doel om het aantal poly's flink omlaag te krijgen. Omdat dit een 3D stap is en echt een vak apart, ga ik het niet uitgeb...

Deel 6: Texture baken

Afbeelding
Als je een nieuw lowpoly 3D model hebt gemaakt, kan je de texture die Meshroom heeft gemaakt niet meer gebruiken voor dit nieuwe model. Dus je moet de originele texture van de highpoly gaan bakken op het nieuwe lowpoly model. Ook hiervoor zijn er meerdere manieren en programma's. Hier een kleine opsomming voor mogelijkheden: ZBrush xNormal (gratis!) Blender (gratis!) 3ds Max Zelf heb ik xNormal gebruikt. De resultaten van een snelle bake test op de lowpoly modellen zie je hier: Baken is een lastig proces voor software, je ziet dat op mijn modellen onder het dakje het baken niet goed is gegaan. Dat komt eigenlijk omdat het dak in de weg zit. Dit heb ik opgelost door een tweede versie te maken van zowel mijn highpoly als de lowpoly. Zorg dat ze beide een UV unwrap hebben voordat je het dakje lostrekt. De UV blijft hetzelfde als je echte model. Deze nieuwe versies zijn puur alleen voor het baken!! Bij beide models heb ik het dakje "los" gemaakt. Ver...

Deel 7: 3D model is klaar! En afsluiting

Afbeelding
We hebben nu: Een opstelling gemaakt, Foto's gemaakt, Met Meshroom een 3D model van de foto's gemaakt, Dat model een retopology gegeven en De texture overgezet van de highpoly naar de lowpoly versie. Nu gaan we het model in Unity zetten, maar kies vooral de game engine die je zelf gebruikt. (of zet het in een render programma als je voor nu alleen screenshots wilt.) Ik zet dus de lowpoly versie van het 3D model in Unity en als vergelijking een foto van het originele object ernaast. Hoppa! Dat ziet er best aardig uit als je kijkt met wat voor middelen dit object is gefotografeerd! Voor dit model heb ik gebruikt: Een zelfgemaakte lightbox, drie bureaulampen en de camera van mijn mobiele telefoon. Voordat we er een eind aan gaan breien, nog even een lijstje met  absolute do's and don'ts: Hoe beter je camera is, hoe gedetailleerder je texture wordt Consequente belichting is belangrijk Maak genoeg foto's, minimaal 30 per rotatieronde. Maar meer mag na...