3D Recording the Swan View Tunnel

Swan View Tunnel is an old railway tunnel east of Perth, in the John Forrest National Park. Since its closure, it has become a popular hiking/Instagram destination. It’s a challenging candidate for 3D recording, due to it’s large size and unlit interior – but as the first rail tunnel is Western Australia it is considered a heritage site of high significance. On a clear Saturday afternoon, I spent 2 hours recording the entire tunnel, end to end. 

With my camera on manual and the settings dialled in to correctly expose the inside of the tunnel, I started the main recording. I walked down the center one step at a time, shooting directly down the tunnel at head height. The flash was on from the moment I entered the tunnel, which gave more than enough light to light up the several metres in front of me. Camera details for the inside of the tunnel are listed below.

CameraSony a6000
LensSony 16-50mm, set to 16mm (24mm full frame eqiv.)
Aperturef5.6
Shutter Speed1/80
ISO6400
FocusManual – set to 6m.
Resolution24mp JPEG – Fine detail
The sparse cloud showing the alignment information for a section of tunnel, with cameras also visible. Note the regular spacing, and the clusters around the recesses.

The greatest challenge of the day was unexpected – waiting for the flash to cool down. After 5 or 6 shots in quick succession, the camera would force a wait time of about 20 seconds between flashes, which added up fast. Most of my time was spent waiting. Hikers and bikers were also a challenge; their impact on the model would likely have been small, but once people get close it’s obviously uncomfortable to keep photographing them (especially with a blinding flash).

The next step was to record the entrances, which simply required an adjustment of exposure to preference detail in the shadows without rendering the daylight parts unrecoverable. The ends turned out a bit ugly, I’d recommend spending more time than I did.

Dense cloud of the western entrance. Note the holes in the floor where a puddle has failed to reconstruct – this is a messy spot in the meshed and textured model.

The final step was to record the recesses in the side of the tunnel. I took 5 to six photos looking towards each one, and making sure they angled back to link in with the rest of the images. All of these successfully aligned. The total number of images shot was just over 600 – for over 300m of tunnel.

Processing took the rest of the afternoon. I used Agisoft Photoscan Standard. It failed to align properly on lowest, leaving a mess of multiple tunnels. On Medium it aligned well, save for 20 or so images, but a quick limited run on high solved that issue. The final version came out to over seven million faces covered by four 4096px textures – very nice, but hard on the computer. The online version for Sketchfab was 200,000 polys, with two 4096px textures – and annotations added in Sketchfab. The settings and times for the full version are outlined below.

StepSettingsTime
Align Photos
Medium, Generic Preselection45 mins
Dense CloudLow, Mild Depth Filtering2 hours, 40 mins
Build Mesh – FullHigh (7,365,748 faces)49 minutes
Decimate Mesh – WebCustom (200,000 faces)5 mins
Build Texture – Full4096px by 4. Hole/Ghost on.50 minutes
Build Texture – Web4096px by 2. Hole/Ghost on.35 minutes

I was also able to bring the model into Blender for some relighting and editing. The image below is a simple Cycles render of the web version, with some added lighting for mood. The composite image at the top was also partly made with Blender. I used the decimate modifier, a custom wireframe style and OpenGL Render to render out a black and white image from the perspective of that camera, then I added the exported normals map from Photoscan for it and composited them together in Photoshop. 

A moody Blender render of the model.

I’m genuinely surprised this worked, it’s the largest model I’ve recorded so far, with especially difficult lighting conditions. Redoing this I would maintain my strategy of taking photos just one way up the tunnel, with special clusters to resolve complex features. I would investigate using a more robust flash – which would more than half the time required.

Leave a Reply

Close Menu