Notifications
Article
Cathedral of Mist
Updated 8 months ago
505
0
Exploring a solitary building, keeper of strange artefacts

Profile

I'm Claudia Doppioslash, a programmer and gamedev, specialising in physically based shaders. I'm learning procedural modelling in Houdini.
I've written the book Physically Based Shader Development for Unity 2017: Develop Custom Lighting Systems, out now for Apress.
I keep a blog about graphics programming and procedural modelling, at www.shadercat.com.

Concept

I wanted to make a building which could be futuristic, but also reminiscent of classical western architecture.
I meant the "cathedral" to be a mismatch of pieces of different times, and with different origins. The dome is similar to the Pantheon's, the column are classical, but the vaults are made from skeletons of beasts, just piled on the columns. But some of these beast bones shine red, so they might not be just skeletons after all...
It could be a restoration of an existing building, with whatever materials will be available, included animal parts. And at the top of the dome a floating, glowing artefact is stored, our pilgrim just about to reach it.

Tools

  • Unity 2017.2
  • Unity Volumetric Fog and Area Lights (from github)
  • PostProcessing Stack v2 (from github)
  • Cinemachine (from the Asset Store)
  • Timeline
  • Unity Recorder (from the Asset Store)
  • Houdini, for the modelling
  • Natron, for encoding the video

External Assets

I only used one external model, a Mixamo character: Erika Archer, as the pilgrim. The music is the prelude from "La Traviata", from Archive.org.

Development

I started late, on the 31st of December, so only 16 days to finish. Despite that, I wanted to try out making my own assets. Now, I'm a programmer, so I had actually never modelled anything from start to finish before. But after a week or so of learning Houdini I modelled the cathedral building with it.

Procedural Modelling

I cut many corners, because I was going to have a very heavy fog, so I just skipped making textures and custom materials. Also better silhouettes were more important than having detailed models.
Dome I meant to approximate the Pantheon, so instead of having elaborate sunken panels, I went with simple ones. In the end they wouldn't really show up with the lighting I wanted, so that was for the best. The final result is actually given by more than one dome overlapping, but it could probably be achieved with only one, with some more time to experiment with the modelling.
Stairs Luckily for me, there is a great tutorial for modelling spiral staircases with Houdini, from Rohan Dalvi. I tweaked the staircase I built from the tutorial quite a bit. I changed the shape of the steps, removed some parts, and changed the rail.
Columns I actually went to observe a real life neo-classical column, because there are quite a few around Liverpool. I made the columns by copying a 15 degrees wedge 24 times around a centre, so that was straightforward enough.
Vaults I started with a normal Romanesque groin vault, meaning to get to a Gothic one, but then stumbled onto an interesting modelling mistake, which I decided to keep.
The "mistake" causes the vault model to look like ribs, so I thought it could go with the story of the place. I also lit some of those vaults, hinting at bioluminescence, and the possibility that whatever beasts the vaults are madefrom, some might actually still be alive.

Lighting

Every surface is monochromatic, the colour is given by the fog and the lights. As a consequence there are many lights. The Volumetric Lighting system only works in deferred, so I might as well milk deferred rendering for all its worth. The main light is a huge emissive plane, high up over the dome. The rest are real-time area lights and tube lights, from the volumetric lighting package. I'm using only real-time Global Illumination. I'm animating the fog values in different places, to control a tendency to "over-bloom". I still haven't conquered it completely, but it's better than it used to be.

Cinemachine and Timeline

I tried the Dolly with track camera type, but since I didn't have any subject to follow it was somewhat hard to control. In the interest of getting this done, I set up a lot of Virtual Cameras and just blended between them a lot. On the positive side I get more precise shots, on the negative side the camera switches lack fluidity. If I had more time, I'd just work on the Dolly camera until it does what I want it to, but for this project this will do.

PostProcessing Stack v2

I checked out v2 of the Posteffects Stack from github. One of the features of this version, is the ability to have different settings in different parts of the scene. In the end I didn't use more than one PostProcessing Volume, but if I had had more time to spend on this, I probably should have. Bloom, Color grading and vignette turned out to help a lot for this scene. Another useful one is screen space occlusion.

Reference images

I looked at churches with domes, built up to the 15th century, and temples with domes built in antiquity, other domed buildings, (yep, a lot of domes), and a many different types of staircases. Also Blade Runner played a part.

Development Log

Day 1 - 31 December 2017 - Project Setup

A bit late to the party, but hopefully I'll manage.
The first objective was setting up the project in Unity, using:
  • Adam's Volumetric Lighting
  • Post Effects Stack v2
Plus setting up the Unity Recorder, Cinemachine, and the Houdini Unity tools.

Day 2-3: Placeholders, and finding a look

Played with some placeholder geometry, and the volumetric fog until obtaining an interesting setup. I want to have an interesting colour scheme, so I'll keep this kind of colours.

Day 4-9: Learning Houdini

I am a programmer, so I have done very little modelling so far. But this is a great chance to try out procedural modelling, so I dug into *a lot* of Houdini tutorials and hoped for the best. Procedural modelling is more intuitive for me, because it has a lot in common with programming, so I hoped I'd learn pretty quickly.

Day 9-10: Modelling

If I hadn't managed to learn enough Houdini I'd have tried to use pre-made assets, but I'm happy with what I made. My objective was to make a building with a dome, a sort of mix of the Pantheon and a Romanesque cathedral, and that I managed.
With procedural modelling sometimes happy accidents happen, my nave vaults are a result of an unusual effect I stumbled upon, and decided to keep.

Day 11-13: Setting up cameras and lighting

Having made my model, I imported it into Unity, and did the lighting and cameras setup. The lighting mainly consisted of a lot of trial and error. I'm happy with the dome lighting, but not so much about the naves lighting.
I wanted to use a Dolly camera, but it didn't work as I expected. If I had more time, I'd just keep at it, but time is in short supply. In the end I set up many virtual cameras and used a lot of blending between them.

Day 13: Exporting with Unity Recorder

This part turned out to be a lot more eventful than I expected :P
For some reason Timeline would not update the camera when the game was running. Every new project I made had the same problem. I tried other versions of Unity, to no avail. In the end I had to retrofit my project inside an example Cinemachine&Timeline project, which for some reason worked. Anyways, it took more than day...

Day 14: Video encoding and write-up

Using Natron to encode a 4k video from the image sequence exported by Unity, with some added image tweaks. Also finishing this write-up :)



Claudia Doppioslash
Graphics Programmer - Programmer
3
Comments