Demonstrations of Photogrammetry and rendering of 3-dimensional models

J. Bijhold

14 nov 2024

ParkWalk: created with Realtycapture, rendered with Aframe framework. You can walk and look around with the wasd-keys and a mouse. In a VR-set or on a mobile phone you can look around and change your position by gazing at one of the green boxes for teleportation.

ParkWalk: created with JawsetPro, cleaned in Unity, rendered with the WEB-GL-splat-viewer. Note that the navigation works differently. The arrow-keys are als needed now.

ParkWalk: created with Lumalabs, rendered with the WEB-GL-splat-viewer

ParkWalk: created and rendered with Lumalabs cloud service. Navigation works with the wasd-keys and your mouse.

My 80's home computer from Ohio Scientific Industries. Created with JawsetPro, cleaned in Unity, rendered with the WEB-GL-splat-viewer

Shiny and transparant objects. Created with JawsetPro, cleaned in Unity, rendered with the WEB-GL-splat-viewer

In memoriam of the CSI-the-Hague project

Abanded house in the dunes. Created with JawsetPro, cleaned in Unity, rendered with the WEB-GL-splat-viewer. Cleaning can be a hassle and this render shows some cloudy features that can confuse the viewer.

The same house, created and rendered with Lumalabs service

General explanation

Photogrammetry is a technique for constructing 3-dimensional models of objects or scenes from photographs by identifying and using points that can be easily recognized in at least 3 photographs taken from different viewpoints, and that can be located as points in a scene. The model is constructed by computing coordinates for these points (this is the core photogrammetry part of the process) and connecting them in surfaces. The latter process is called meshing. The mesh can be rendered to an image that can be shown on a screen.

Meshing works for solid objects but not for organic structures or transparent and shiny objects. A popular technique for rendering that is now being developed is referred to as Gaussian splatting. In this technique the points obtained from photogrammetry are used as starting points for the creation of "splats". The splats are semi-transparent ellipsoid objects with parameters that are fitted to get the best matches between the photographs and corresponding renders of the spats.

Software and cloud services that have been used for these demonstrations

For photogrammetry, I have used 2 methods: RealityCapture 1.4.1 and the cloudservice of Lumalabs.ai. Other software and services that I have tried are Meshroom, KiriEngin, Polycam and JawsetPostshot

For rendering the mesh models on a webpage, I have used the Aframe Javascript platform. Another way to show mesh-models is using the WebGL export possibility of Unity. The advantage of using Unity is that the user interface for navigating in and around the models can be easily changed.

For creating Gaussian splat models, I have used Jawset Postshot and the webservice of Lumalabs.ai

For rendering the splat models on a webpage, I have used 2 methods: the cloud-service of Lumalabs.ai and a Javascript that was developed by Kevin Kwok.