Building Sherlock Holmes’ Flat in 3D

3d artist Elliott Lambert talks about the tools and the techniques which allowed him to build the iconic 221B Baker Street environment.

We’re happy to publish a huge breakdown of the “Sherlock Scene” from Elliott Lambert. It’s a huge scene that features a couple of very detailed rooms, filled with various objects and amazing visual materials. He talked about the creation of the scene, the techniques he used indifferent tools and the way he managed to combine so many 3d models in one amazing location.

Introduction

My name is Elliott Lambert and I’m in my final year studying Computer games modeling and animation at the University of Derby. I’ve been creating 3D work for 3 years now and I’m enjoying every minute of it!

TempleIndoor

I started creating 3D art for my course, which was such a difficult experience after never touching any 3D applications before whatsoever. I started off with 12 weeks to make a vending machine, which seems a ridiculous time period now but back then it was one of the more challenging things I’ve done – and the end result was terrible!

Templeoutdoor

I’ve always made big scenes in the past to give myself more work than I should really, and even though they didn’t come out great the techniques I learned along the way helped build up to my newer scene. Which I believe came out nicely.

VendingMachine

The Origin of the Sherlock Scene

I chose the Sherlock scene for a few reasons, firstly the task I had was to create a scene from reference. I also really wanted to create a Victorian scene as I’m really interested in the time period and the style. I loved the modern interpretations of Sherlock (BBC and the films) so I searched for the original Sherlock and discovered there was a museum for 221B Baker Street in London. I made my way down a few days later and took some reference photographs and started working off of them. The room was incredibly detailed and cluttered leaving me with endless options for creating assets. I would probably still be making assets into next year if I had to make them all! I’m happy with the amount I have created for 11 weeks though and I feel every asset in the scene has its own bit of detail.

Reference

As with most scenes I created I start with using the BSP brushes in UE4, this makes it really simple to make basic shapes and get a sense of the scale. I did this by following initial reference from images online of the apartment. Until I actually visited the apartment I didn’t realize how different the size of the apartment actually was. Of course, once I had been in the room I went back and adjusted what I felt the correct proportions and I then began creating the apartment.

I had made a few initial assets before from online reference (A few chairs, a table and a sofa) just to kick myself into gear for the project. I had to consider the scope of the project also, as I had to complete it within a 12 week period. I gave myself 3 areas to complete – the main room, which was my focal point, the bedroom and also the Stairway which served as an entrance point for the scene. There were more rooms in the apartment but… lets save them for another day!

1 of 4

Blockout

Building the Interior

To build the house interior. I followed a few archviz examples in the UE4 learn section, I used Berlin flat and lightroom as examples as I felt it demonstrated a great use of lighting. I broke down the scenes and studied how the walls were created, how dense the meshes were, the lightmap resolutions, the use of directional lights, sky lights and spot lights.

1 of 5

I exported the newly amended BSP blockout and created a wall mesh similar to both of these examples and made sure the light maps I created were effective. I found by copying techniques from great examples I would set a solid foundation for this project.

The floor was actually a very awkward piece for me as the initial plane I exported wasn’t displaying the texture correctly (even after being boxed in my BSP brushes). It was washing out the texture, making it almost emissive, despite a few hours messing around with the mesh I resorted to creating a thicker floor which solved the issue. Note the ceiling also suffered from this to – except this time it was really dark, and the same solution was applied.

1 of 6

I did my research on the Victorian style, I saw lots of large draped curtains, floral patterns, lots of upholstered fabric/leather. Giant patterned rugs, an excess of wooden materials and detailed lights/Chandelier. Maintaining all of these key areas ensured I would have a traditional Victorian scene. This research was done prior to my visit of the apartment and once I went there шt pretty much solidified the style I was trying to create alongside incorporating a few key Sherlock props.

Workflow

My personal preferred workflow is Zbrush – Substance designer – UE4. I like this workflow for me because I can finish an asset (model, UV unwrap and texture) in one sitting rather than make everything, then UV everything, then texture everything, it breaks up these processes so I’m not sat creating every texturing or UV’ing in one large task.

sherlock-zbrush-80lv-breakdown-80lv-gamedev_6

90% of the time I’m comfortable just starting from a dynamesh sphere or a cube in Zbrush to create what I want. This workflow was strengthened for me by my recent discovery of re-meshing with zremeshguides and polypaint. Before I had a problem with loosing detail in key areas whilst re-meshing and learning this ensured I could maintain polygons where I needed them.

sherlock-zbrush-80lv-breakdown-80lv-gamedev_2

My main brushes being clay build up, Trim dynamic/Hpolish and flatten. I found myself using the Dam standard brush often to add in swirls and floral patterns to meshes. I also used shadowbox for the small table I made. I would also use lazy mouse to mask areas out, invert the mask and use inflate from the deformation tab to create uniformed Victorian style patterns.

1 of 4

Looking back there are some other techniques I would have benefitted from such as the ZappLink (shown here) and the mask polypaint technique (shown here) but i’ll have to start using them for future work!
Despite loving this way of working, there are times where I need to use other tools to achieve a certain result, if I need to make walls/drawers/tables I’ll use Maya for example. If I need to make an alpha map I’ll use Photoshop. If I need effectively draped cloth I’ll use ncloth/Marvelous Designer. I’m quite flexible with 3d software.

Using Substance Designer

I used Substance Designer (and a little bit of painter) for my materials, both are incredible and are staple to my workflow.

I have a node graph that I just recycle for my textures that allows me to quickly texture something. Using substance I’d bake out my curvature, world space normals, position and ambient occlusion.

DemoSubstance#1

I’d feed this into a mask generator, usually edge wear/select and apply my graph.

A lightweight explanation being two gradient maps – one for the base color, one for the edge/wear color, both filtered into a blend node with the chosen mask generator in the alpha to determine which colour would cover which area.

DemoSubstance#2

Repeatedly applying this principle proceduraly was also part of the process but it became a very simple, effective way for me to get a great result.

There were also times where I’d need to make a patterned texture, to do this I’d repeat the process above to produce the background material for my pattern. Then I’d search for either vectors online or patterned images and cut out the pattern in Photoshop, mask it out and feed the result into the alpha of a blend node. I’d again use a gradient map to produce foreground color for the pattern as I feel gradients – supported by the staple noises in SD are good way of creating color variation. Then I’d use an inverted edge detect node to get the outline of the pattern – use the same blend process as before and then blend the two results together (Blended color result for outline as foreground with blended color result of pattern background as background). I’d put the pattern result in the foreground and the texture as the background.

DemoSubstancePattern

I’d then reposition + tile it in substance using either transformation2D or tile generator.

Finally I’d grab a final gradient and feed usually a BnW noise into it, overlaying it on a low opacity allowed me to control how aged the item looked. It was a really subtle yet effective way to give the texture a bit of grit.

Overlay

I found myself using herb1 a lot for the normals, often blending it with crease noises or warping it in some way. This was applicable for most of the cloth items. For the carpets it was typically high intensity normals.

DemoSubstanceHerb

To achieve the roughness I would get the initial gradient map that produced the base colour, convert it to a grayscale adjust the levels until I get the desired result. Then I would place it on the background of a blend node and add it with the edge mask I used, I would then lower the opacity until I got the roughness value I wanted for the edge mask.

DemoSubstanceRoughness

Even though it sounds complex in a block of text, its the same process repeated and blended in different ways. Hopefully the images make it a bit clearer!

I also recently recreated the fireplace texture as it was too dark previously, it gave me a chance to use Quixel 2.0 which was also a really cool piece of kit. Us 3D artists are spoilt for choice with software!

(Fireplace photo in renders)

Using Marvelous Designer

I’ve mentioned a few tools in my workflow, one tool that I tried for this project that’s definitely worth mentioning is Marvelous Designer. As previously mentioned, one of the key areas I needed for a Victorian scene was large curtains draped over and around objects. Marvelous Designer helped me achieve that.

1 of 6

It was incredible for simulating cloth, I imported my meshes into the 3D viewport simulated the cloth falling onto them. In the scene there are multiple objects surrounding the large drapes and by importing the surrounding meshes I could drag the cloth onto and around the tables, I could let it impact correctly with the floor and I could drag the cloth around during the simulation.

1 of 5

This made it look much more convincing than having the drapes just all sit behind the assets. I’m still a very basic beginner with the software but I found it a very user friendly experience and managed to create a lot of cloth assets in a short space of time with the software. The fabric type I would use mostly was cotton as it repeatedly achieved the result I wanted during simulation. I can’t speak for much on MD5, all I can say is how effective it was in allowing me to get amazing results with very little knowledge on how to use it!

Building the Correct Lighting

Comparison

Just as mentioned in the “Kitchen 1930” article (which is an incredible piece which you should check out if you haven’t! ) lighting is a constant development. It changed all the time with my scene. I referred back to the Arch-viz examples and saw the use of spotlights being bounced off a reflector, whilst this result is extremely effective I wanted the houses outside of the window to be visible so using this method didn’t meet my requirements. It also meant I was getting more bloom and lens flare than I wanted.

Being as I had the apartment open from two angles I wanted light to come in through both. This meant I had to include two directional lights, which is an unusual setup but for me the directionals help the realism of the scene tremendously, especially as they bounce off the carpets which then bring out the normals really well. Neither directional is too intense (I think I have them both set to around 6) but they achieved the result I was after.

I also have a skylight in the scene on a low intensity of 1, I felt as I was increasing the intensity the brightness was washing away the textures and the atmosphere wasn’t quite there. Keeping it low meant that there was the right amount of dark and light contrast in the scene – of course by having this contrast I had to play about with the speed up/speed down of the auto exposure as passing windows on a camera shot would cause a few seconds of readjustment, which was too detrimental to the camera shots.

The spotlights are doing more work than you would think, especially the four that are hanging from the ceiling which have an intensity of 500 attenuation radius of 1000 and outer cone angle of 60. Its surprising how dark the scene becomes without them.

The point lights around the scene are all fairly low intensity and only cover a small space. One of the major difficulties for me has been lamp shades effectively working, I’ve found that making the shades material subsurface which gets a fairly good result, but does make the texture color ‘pastelle-ish’. I will keep searching for a better way to represent them!

The scene also uses maximum ambient occlusion in the post process volume and uses the Circle DOF with a focal distance of around 70 and a scale of 1. The temperature of the scene is 7000 giving it a slightly warmer feel. Finally there is an exponential height fog that starts the fog at a distance of 500 and a low density of 0.02. This combines with the ambient occlusion in the alcoves aside the fireplace for a really nice effect.

The scene has a few particles around it, the dust, which is slightly edited from the starter content, a fire particle I made and also the smoke coming from Sherlock’s Pipe. I think they all help breathe a little life into an otherwise static environment!

(Scene breakdown images)

The Choice of Unreal Engine 4

I’ve never used UDK, UE4 is the first engine I was introduced to, and how awesome it is. It’s perfect for my scene in its cluttered state, it holds a huge amount of items, textures (often bigger than they probably should be) but it shows no sign of struggling.

Directional1

It’s so approachable for newcomers. It has a really helpful community, with Youtube tutorials, forums – which I also want to thank for letting me know of some vital props I was missing. There’s a bunch of help and support to create your visions with the engine and its capabilities are incredible.

Directional2

The fact I was able to break down examples of previous amazing projects such as the Berlin flat and lightroom speaks for free is one of the huge benefits of the engine. And it’s being constantly updated bringing improvement after improvement. For realism its ideal, its seeing use in Architectural visualizations! PBR is a glorious thing.

LightingBedroom

For me there are still a few problems with the engine. Glass materials were a real struggle, the refraction on glass – especially when taking renders is quite unstable. The material would look fine then once I would take a high resolution shot the refraction would offset the glass leaving a strange result.

LightingMainroom

There are also times where I’d have a mesh in the engine and apply a glass material on – only for it to then became practically invisible.

Also, as I previously mentioned subsurface color display, I feel it washes the color out turning it to a more pastelle shade. I struggled getting the lampshades to react realistically.

Skylight

Mostly though I think mirrors were the real challenge for me, I resorted to apply a constant value of 0 for the roughness and a value of 1 for metallic. I then made the base color white. They reflect well in some circumstances, but other times they didn’t react how they should have. The mirror behind the decanters was the biggest difficulty here which doesn’t reflect well and is quite pixelated.

Of course there might be a really complex shader to fix this, I’m just not there yet!

***

All in all, I’m really happy with the scene. I’m hoping to keep learning better ways of creating the environments, and I can’t wait for the next project!

Elliott Lambert, 3d artist

Join discussion

Comments 1

  • Jamie Gibson

    Hi Elliott,
    This is a great breakdown and very generous in sharing your process and insights, you came a long way from the vending machine days!

    0

    Jamie Gibson

    ·5 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more