27 July 2021

Gotham City Police Department – Environment Breakdown – Felix Pietzsch

featured-scaled

Intro & Inspiration

Hi everyone I am Felix Pietzsch. I’m a 3D Environment Artist from Hamburg, Germany. I work in 3D for round about 8 years now. Mostly on some smaller Mobile Games, Game Trailers and Console Games. Lately also on some VR Projects.
When I first saw the Gotham show on Netflix some time ago, I fell in love with their visual interpretation of this iconic place. It is super moody and looked like it is built inside an old rail station or cathedral, which makes it really interesting.
Whats is also unique is the fact that the props on the desk seem to be from different time periods. For example, you have typewriters and at the same time

CRT Monitors. Another point that spoke to me was the art décor style of some interior elements. All in all the place had a great visual language and a lot of potentials to create an interesting game environment.

Initially, I started the projects some years ago to learn Unreal and have a sandbox to try out different techniques. But after some weeks I stopped working on it. I had the main architecture and main materials build and set up. I think it was the sheer
amount of assets i had to produce to finish it, which let me stop working on it.

Since this year. All the time this project lived in my head and from time to time it screamed at me that I have to finish it. So this year I give it a go and set a timeline of 3 months to fully finish it with a little kid at home and a full-time job. It was an intense experience. But the feeling to tick the box and finish the project after a long time was a very rewarding feeling.

References & Planning

The good thing about rebuilding an existing place in 3D, especially from a TV Show is that you find a lot of references and different views from the environment.

What also can be a little bit overwhelming on the other hand. You have to bring them all together to understand the environment as a whole. It also takes some time to find the right proportions and scale for all the major areas of the environment.

Therefore I put some human references in Photoshop to get a better feeling. I also used color-coding to identify different props and materials, to plan the project.

GCPD_RefBoard-scaled

Even with personal projects, I think it’s important to work with structure and progress tracking. On the one hand to have an overview and on the other hand it’s very rewarding and motivating to tick boxes, at least for me. So in the beginning I used a complex google spreadsheet with different stages of production for every asset. Later I switched to Trello, which is a much more downstream and more visually appealing method. Especially when the time was limited in the week it was motivating to move even small assets to “Done”.

BlockoutPlus and Modularity

When it comes to the blockout, it was straightforward. My main DCC is Maya.

Again the challenging part was to get sizes and scales correct, so the environment feels right. For that, I tried to treat it like a real game level. So I often check the environment by actually playing the map. I also use checker maps in Maya and Unreal to remind me early to keep an eye on even texel density. It’s also good to start early building the environment with modular pieces. Even they are super rough.

So I normally have 2 Blockout states:

1) BlockoutBase, which represents the correct size and dimension of an asset.

2) BlockoutPlus where I add more prominent details and first functional UVs so its possible to bake light and apply basic tiling materials.

Therefore you notice early if you missed some assets in your planning and you can build the environment fast with less detail work. You can check the lighting early and get a better feeling of the scene with some base materials.

Even if it’s obvious, I like to categorize the assets into 3 main sections. First, you have Level 0 assets. With them, you build the foundation of the environment, like Walls, Columns, Doors and so on. They are mostly modular. Then you have Level 1 which brings broader architectural details to the scene. They don’t have to be modular, cause they often have a unique character and are used only ones.

For example the gargoyle statue or the big sergeant desk. Level 3 are all the middle size and small props which bring story and life to the environment. But this was also the most time-consuming category.

Asset Production

The asset production was straight forward. Since i brought all assets to the BlockoutPlus state there was only a matter of adding bevels here and there and making cleaner UV Sets. One topic that bothered me every time is how I get extra details like damages and wear efficiency into the assets. For this project, I did an extra Zbrush pass and hand-sculpted edge damages into most of the assets. In retrospect, I wouldn’t do this again. It was super time-consuming and today I would do this with edge decals. In the future maybe technologies like UE5’s Nanite will help to reduce such steps in production. But therefore you do personal projects, to learn what and what not to do anymore.

GCPD_EdgeDamageZbrush

After the Zbrush pass, I directly went into Substance Painter and start baking. For the texturing workflow in Painter, I like to create project-based Smart Masks and Smart Materials on an extra shelf.

I created a Smart Material which includes 4 Masks: Drips, Dirt, Cavity Dirt and Edge Highlight. These masks were then exported as a channel-packed mask file for Unreal. So I could manipulate the masks in my Asset Master Material. Besides that, the Master includes general functionality like normal strength, AO Boost, PBR Manipulation and so on. With the references in mind, I could identify 8 main Material Types which I recreated in Substance Designer. After that, I brought them into Unreal and created a material function for each of them. This is very useful when you want to reuse or blend certain materials or functionality.

GCPD_Materials

It’s a nice workflow to use masks. But in the end, I found nice settings for my assets in Unreal and I keep them and never manipulated the masks in my shader again.
So you have to think about if such workflow is really necessary.

I think what gives the environment a lot of storytelling were all the small office props. It was fun and pain at the same time to create all of them. There are some small props like rubber or pens which are very easy to model and texture. But also some complex props like the typewriter or the telephone.

Which needs also a lot of reference work again. When you power through such an asset list can be tiring but in the end, when you place them you notice that you can achieve a very complex and lifelike looking place with them. You also learn where to cut, which is also an important skill in production. Variation is also key. When it comes to set dressing it’s important to not 100% copy arrangements of props.

Placing every pen differently is not necessary, but variation is key to achieve a believable place.
Different colors and textures in material instances can easily contribute to the visual variety of assets.

Lighting

Lighting is by far the most important part of making a scene looking good in the end. And for me, it’s always one of the best parts, cause you can see how all the hard work comes together. I wanted to create a night mood with light coming through the main big window generating some cool god ray effects. Another goal was to try out the raytracing capabilities of the engine. Unreal Engine 4 supports raytraced GI, reflections, AO, translucency.

Of course, you cannot activate all at the same time, so you have to decide which effect gives the most benefit for the scene. I have a lot of smaller objects in the scene and many surfaces are made from metal. So after playing with different settings, including distance field AO, I decided to use raytracing for AO and reflections. GI is too costly at the moment – with UE5 and lumen it will change most likely. As a good compromise, I used SSGI in the scene.

The only dynamic lights are a skylight and directional light. Sadly it’s not possible for the directional light to use raytraced shadows and Volumetric fog correctly. So you also have to decide. There are hacky ways to solve this but I didn’t use such tricks in the end and used it without Raytraced shadows from the directional light.

Here is a link to such trick from William Faucher on Youtube:
https://www.youtube.com/watch?v=UqMvd6UGBhE

GCPD_FelixPietzsch_14-scaled

The rest of the light setup consists of completely baked static lights. Because of all the physical lights existing in the scene, the placing was clear. In the end, I like to place additional fill lights here and there without casting shadows, to brighten up some corners and push some GI effects. One thing I always apply in my scenes is a sharpen post-effect material. In my experience, it pushes the visuals a lot in the end.

Another great little workflow I discovered, originally from Tobias Noller, is to use Editor Widgets to fast and easy access functionality via one click. In my case for example I can turn on and off all Raytracing effects or SSGI, increase the Fog.

Grid Pixel Size and so on. It’s very handy to quickly iterate and test out different settings affecting the scene.

Here is the link for the tutorial if you want to create your own widget:
https://www.youtube.com/watch?v=r1nd1y5tbgA&t=1097s

In the end, I added some dust effects in places where the light coming through the windows.

GCPD_RaytracingEditorWidget

Conclusion

The one thing that makes this project special to me is the realization of how important it is to finish a project. Even after such a long time sitting on my hard drive, it was a very great feeling completing it.
Like I mentioned the project was a good practice to cut corners without losing much visual quality. Doing every game art trick and creating possibilities to manipulate everything in Engine (like the mask workflow) is not always necessary to achieve a visually appealing result.
Using Unreal Engines Raytracing features and balancing outperformance and graphical quality was fun and also an important lesson. I also tested out the new DLSS 2.0 plugin which works pretty well in UE4.

With this in mind and all the other game-changing technologies coming especially with UE5, we are looking into a great future for game art and development.

Thanks for reading and if you want to see more of my work, check out my Artstation page!
https://www.artstation.com/3dlix

 

Thanks to Felix for allowing us to have such an in-depth look at his process. If you liked this Environment breakdown and want to see more like it from other inspiring artist’s make sure to follow us on:

https://www.artstation.com/gamesartist

https://www.instagram.com/gamesartistuk/

https://www.facebook.com/GamesArtist/