I went on a Horror gaming binge last summer with games like Resident Evil: Village, Dead Space and Alan Wake. I always find that when I’m in a slump in regard to my work, I get my motivation and inspiration for the next project, from visual mediums that I either play or watch. That’s how I narrowed down what I wanted to do with my next environment.
I started creating a mood board of the atmosphere and tones that I wanted to establish with my artwork and remembered the Darkroom save room from Resident Evil 2. I then looked all over Artstation for a Darkroom Environment and found that no one really took the initiative to create a full environment out of the idea.
That was a win in my book because my environment could stick out and be unique. I consider it a very important factor to make something that no one has seen before. I feel like it garners intrigue and interest compared to something that we’ll marvel at for a couple of minutes and move on since we’re so used to seeing something like a bedroom or a sci-fi hallway.
I took a lot of inspiration from multiple environments on Artstation and started filling my mood board with references to what I wanted to emulate during the production of this scene.
After a little more research, I started taking notes of all the assets that l had to model in the scene and started creating the most rudimentary block out with primitive shapes and meshes in 3Ds max just so that I could get an idea of scale, width, density and perspective. I can’t emphasize how crucial it is to really get a good understanding of this stage in your production pipeline. You want to absolutely ensure that every model is the correct scale to an average human and real-world reference.
If you’re attempting to create a realistic environment, having an abnormally large or microscopically small asset will stick out like a sore thumb and bring an uncanny feeling to your entire art piece. Please get real-life/world dimensions to every asset that you make, no matter how small or insignificant they seem. It will not only make your work better but this practice will make you a better artist. I thought about what I’d like to showcase and work on during the early stages of development.
With a rough block out started, I could start to visualize the focal point of my composition with the sink in the corner. I set up my main wide-angle with the help of a camera in 3ds max and started to build my scene with all my camera angles in mind. Once I filled the scene with my primary and secondary props, I thought that I could start putting together a scene in Unreal for grey boxing and setting up first-pass lighting.
Once I completed my proxy models, I spent some time using my camera angles to define the focal point of the composition and use the theory of directional spacing to lead the viewer’s eyes to that focal point. Your scene density ( the number of props and busyness on either side of the scene), spacing and colours play a huge role in defining this point.
Here you can see that the ventilation unit takes up a major portion of the ceiling space and it directly leads to the sink in the corner. My main source of light in the scene is placed on my focal point and the assets on either side of the room are hidden in shadow.
Setting manageable goals is a skill I’ve forced myself to work on when it comes to projects of this scope. For environment projects, I like to make sure that all my tasks are laid out and organized in a precise and efficient manner. I achieve this by creating lists for myself. Lists on Notepad or my phone’s note app on the tasks that I’ve got left or assets that I still need to model. I think implementing a step like this in your projects is absolutely crucial to avoiding burnout and fatigue.
Since you’re creating a scene bit by bit, there’s so much work to do. Creating a specific task for the day with set deadlines ensures that you can work at manageable pacing and accomplish something at the end of the day no matter how insignificant it might seem in the grander scope of things.
Once I managed to block my scene out, I started remodelling all the props to create the final pass iterations for each asset. I use 3DS Max so my pipeline is fairly traditional to that of a game production pipeline. I’d start with all the big and prominent assets of the scene. I’ll classify these as the primary assets. Things like the table, steel chairs, sink, heavy shelf, lockers, etc. were the priority before I could move on and work on additional props. Most of these assets were created using a mid-poly FWN workflow so that I could save time and pump out satisfactory models without bouncing from one software package to another regularly although there were certain props where I had to go about the traditional method of generating a high poly mesh and baking the details down to a low poly iteration.
For things like screws in certain fixtures or grooves and panelling in a couple of pieces. I’d create a high poly asset with all these surface details, then generate a low poly mesh due to 3DS’s max’s modifier stack and then go on to UV Unwrap each component. I would take my models into Marmoset Toolbag 3 for baking as I had more control over several parameters of the process compared to doing it in Substance Painter or 3DS Max itself. Then I’d generate my baked maps and transfer over all my files into Substance Painter for texturing. I took 3 days on each asset where each day would consist of a specific stage in my workflow. I handled my assets this way to ensure that I could keep pace and do something different each day to avoid getting fatigued. Day 1 would consist of creating a high poly and low poly asset, I would tackle unwrapping and baking on the second day; and then leave the third day for texturing, revisions and engine integration.
It’s a tedious process because of how slow this step is in the entire process of creating an environment. You are responsible for almost everything here and you want to take your time with it so that you can ensure a level of quality and high fidelity with each aspect of your project. I slowly chipped away at each prop and followed the three-day workflow with all the primary assets.
After finishing all the primary assets, I moved on to the secondary props that would be scattered and seen in the scene. These include Hero assets that were specifically made for the darkroom environment. Things like the CRT Monitor, Photo Enlarger, Computer, File Boxes, Photo Development Equipment, Desk Fan, etc.
I followed references that I had gathered in my pure ref file and started by blocking out the primary shapes of each object. I personally feel that the best way to create highly detailed props is to follow and get your primary shapes in first. Take this Photo Enlarger for example.
I started with a primitive block out on my first pass. The body solely consists of modified boxes and cylinders and one spline for the handle-like fixture on the right. Once I get all my shapes in, I start to further adjust and refine the model.
This step is where I added my support loops, and bevels/chamfers and modified the topology for things like the holes and fixture plates.
I then move on to add the fine detail with the screws and subdivide the mesh to generate a high poly asset.
When I was satisfied with the result, all I had to do was duplicate the mesh, and remove the turbo smooth modifier and any other topology dense modifier to start optimizing the mesh for a low poly iteration.
I reduced the tri count significantly from an estimated 260,878 to 6,519 triangles. I applied the same principle to several assets like the CRT Monitor and Computer so that I could have less burden-heavy assets in the environment.
Texturing is one of my favourite parts of a work pipeline. You are the master of your narrative and have the power to bring life to a computer-generated object through texturing. You can make a TV look like it’s seen better days or you could go the extra mile and really thrash/grunge it up to show its decrepit and dilapidated condition in a fictional world.
It is important to think about the attributes of your environment before delving into texturing your props. What type of environment are you creating? What’s the temperature? How does the environment affect the assets? Is there moisture buildup?
Is your environment set in a musty old basement? Or is it set in a sanitary office? Keeping these notes in mind is critical to creating props
and assets that look like they belong in your environment and homogenize well with the foreground to create a balanced composition.
With my Darkroom environment, I wanted to establish a very specific type of atmosphere. There are puddles of water on the floor and sink, a couple of wet floor signs and a mop next to the sink. These
elements indicate that this place requires a regular wipe-down. There’s water damage, leaky pipes and cracks in the ceiling indicating that this room hasn’t been well maintained for some time.
With peeling paint and moisture, you get heavy grime on the walls. Some of these elements are grounded in reality, but you can also just push them to fit the narrative, atmosphere and tone of your environment and take your work up a notch.
So keeping all these things in mind, I went on to create and texture all my props. I start with applying all my base fills and materials before adding any actual details. Two things that I believe increase the level of detail and add realism to your props are accurate grunge passes and surface variation.
Take your time with it, look at your references and see where the dirt spots start. Where the dust is most visible, where would you most likely see fingerprints? Build up each level of detail with multiple grunge/detail passes and several layers.
These are a couple of tips that my friend Dylan Abernethy taught and mentored me on when I was a student at Game Arts Academy. They’ve been mainstays in my texturing workflow ever since!
● Adding surface variation to your models is an essential step in the texturing process and mastering this will bring an elevated level of detail, polish and realism to your assets. This variation can come from tweaking and adding additional colours to flat bases and this additional detail is classified as colour variation.
This type of detail really brings out some weight and believability in an asset’s albedo values.
Nothing is a pure colour in real life. If you use the colour sampler/eyedropper tool for your reference, none of the colours you see will have absolute values like 0,0,1 or something similar to this case. These subtle differences in hues will bring about more depth of profile in your assets.
The way I accomplish this effect is by adding a fill layer to my layer stack and disabling every option/preset channel aside from colour. I then choose a colour that I think is complementary to the most dominant colours in my model. Next, add a black mask and add a fill layer to said black mask. Add a procedural map that is fairly subtle in overlaying the layer. My go-to’s are usually the cloud maps or some of the numbered grunge maps. I tweak the values to my liking and then set the layer settings to multiply.
Surface variance can also be added through roughness alteration. This process entails painting over details that would usually stick out under light and then tweaking your roughness parameters. This could be dust, smudges, a build-up of grime, dirt, scratches, etc.
Nothing is really in pristine condition except for the moment it’s freshly out of a box. Look around your surroundings, pick up something on your table and hold it up against some light.
Now, these details stick out on a prominent basis. My workflow consists of adding a fill layer and enabling nothing but the roughness channel set in a range between 0.85-1.
I then create a black mask and paint over all these details manually with procedural maps and the stencil set. I’m sure there’s a more efficient way that automates this process a little more but I’ve yet to find something that fits my needs exactly. On the positive side, I do enjoy hand painting these details in myself, something about the manual labor put into your work makes the end result more validating in my eyes!
Height Details and Stamps
This tip comes from a very talented friend of mine, Eric Correia. I’ve carried this tip with me throughout my texturing work and I thought that it was worth sharing with all of you.
One thing recommended when adding stamped normal/height details onto your mesh whether it be engravings, embossing, indents or any other related details; is to use the Blur filter on that layer.
Your stamps look much more natural and part of the mesh when this filter is applied as it softens the transition from two different heights of surfaces.
Simply add your stamped details in a fill layer, right-click on the said layer and add a filter. Select the blur filter and reduce the value till you’re satisfied with the look and feel of the added effect.
Materials, Decals and Detail Pass
Back to the environment, this process is relatively straightforward. I sourced my tileable materials like the tiled floor and concrete walls from Quixel Bridge/Megascans. I then changed some of the values like the tiling, albedo, roughness, and specular and normal parameters for the instanced materials to fit my needs.
The one additional modification that I did make myself was adding surface imperfections to the master material of these materials. This idea hearkens back to what I said above, about surface variation. Some contrast values on your materials go a long way in adding much-needed depth, personality and realism. Especially when tileable materials for walls and floors are so basic and clean in appearance. Decals and Roughness Variation help in breaking up that procedural look.
For the spilled water on the floor, I used the Blood Spatter decals from Quixel Bridge. To make it look more like water, I changed the albedo values to a more neutral colour and lowered the roughness and opacity values.
As per details with set dressing, I simply did a lot of research as to what devices, tools, and objects are used often in a Darkroom. I compiled all my research and references in my pure ref board and chipped away at all the small props which would enhance the environment.
I went above and beyond with some of the tertiary details in the scene as well. Things like the garbage bits on the floor by the sink, posters, and photos hung over the wire. Something that motivated me to keep going ahead with this project was inserting my own passion and creative juices into this environment.
I feel that people tend to be more productive towards a project/endeavor that they’re personally invested in. I did the same with this darkroom where I tried to emulate the vibe and atmosphere of some of my favourite games and passions and create a scene with them. This came from multiple easter eggs, nods and shoutouts to other games and shows, and lots of other elements like the lighting and mood established in the final scene.
My lighting setup was fairly basic with the setup scene. Interiors with one primarily light are relatively easy to set up and Lumen does a lot of the heavy lifting with the new global illumination settings.
Since a fluorescent tube light in the corner of my scene was my primary light source, I decided to use a Rect. A light which could replicate the accurate shape, length and spread of a tube light without blowing up the scene in overwhelming brightness.
My values were set to minimal values so that the lighting was subtle and helped illuminate the contrast and details around the scene.
To get the emissive boost that highlighted the back wall, I actually applied a separate material to the tube light mesh. When I took the tube light into Substance Painter, I made an emissive texture to showcase the light. From looking at real-world references, I noticed that the light wouldn’t illuminate the entire tube, it would actually fade out closer to the edges. It’s details like this that an artist should take note of if they attempt to make realistic environments.
I achieved this light falloff by adding a gradient filter and then painting over the emissive material with a soft brush.
When I integrated the Fluorescent Tube Light into the scene, I also made sure that I’d go into my details panel and enable the emissive boost setting to a value of 2.0 so that the emissive texture could be highlighted and stand out prominently in the scene.
I then added a Point Light right below the tube light to enhance the falloff and create some effectively cast shadows for the surrounding components of the scene. This gave a nice highlight to the back wall and gave the illusion of higher intensity to the Rect. Light without blowing out all the subtle details, reflections and light bounces.
I learned this next trick a couple of years ago from an amazing lighting artist, Zach Hewett. Adding an Exponential Height Fog next to your main source of lighting with really subtle values helps give it a really good sense of depth, weight and profile.
The fog takes your lighting information into account and creates real volumetric lighting. We refer to these rays of silhouetted light as god rays. The Exponential Height Fog illuminates the spread of the light and this tool can artistically bring out
wonders in the mood and various other storytelling aspects of your scene.
Enable your Volumetric Shadows and the added weight with the Exponential Height Fog enhances the silhouettes of your shadows and softens the falloff of light dramatically, therefore, pushing your scene through another threshold of realism. The difference speaks for itself and I can’t recommend this trick enough!
With the lamps, I added a Spot Light and widened the inner and outer cones just enough to illuminate and highlight the edges of all the nearby props/assets on the table. The radius of the lamp head plays a big factor in how much the light from the bulb spreads out so keeping that in mind, I tweaked the size of the cones and adjusted the location of the SpotLight appropriately.
I then increased the Indirect Lighting Intensity to illuminate the table and make the transition of the light much softer when it touched assets on the surface of the table. I further added an IES Texture to the light so that I could make the falloff much softer and natural.
A huge shout out to the Experience Points discord that helped me nail this part of the composition. It is an amazing 3D Art community and I highly implore you to join it if you haven’t already.
Post Process and Final Renders
I always say that Presentation and Final Polish will at least amount to 50 percent of your project’s development time. Since this is the final stage of production, you want to absolutely ensure that every single aspect of your project meets your defined criteria of high standards. I carry this process out by making a checklist of settings, and processes that I want to work on and enable before taking my final renders.
Let’s start with LUTs. Colour grading is a very important stage during the post-production of your scene. Different Colors/Gamma settings can drastically change the mood, tone and theme of your scene. The colour palette communicates these aspects by influencing the emotional tone within a scene.
I wanted to communicate feelings of isolation, mystery and coldness through my palette. I noticed that some of my references reinforced the same imagery which is why I attempted to match my own palette to theirs.
I accomplished this by taking a LUT Template into Photoshop alongside a picture of my environment and experimenting with various masks and filters like the Vibrance channel and Color Balance channels. Here are my settings
Post Production is one of my absolute favourite stages of development when working in the Unreal Engine. With some slight value tweaking, It has the potential to turn a good scene into an amazing one! I modified my lens settings, reflections and some of my gamma values to achieve a more cinematic result. These were my revised settings, As you can make out, there’s a stark difference in colours and mood.
Additionally, to sharpen the quality of the renders, I created a simple Sharpening Filter Material using Erwin Jesse’s awesome youtube tutorial and added that to the blendable additives option to bring out a higher resolution in texture quality.
Cinematic Capture and Final Renders
Finally, when it came time to do Cinematic Renders, there is only one person who comes to mind. William Faucher is a superbly talented VFX Artist and I can’t speak any more highly of his work.
Nearly every part of my skill set that has to do with post-production, rendering and cinematics in Unreal Engine has been learned from his youtube channel.
In order to get my video capture to look as cinematic as possible on a production level, I enabled and tweaked some of the settings that William Faucher heavily recommends-
Camera Type – 16:9 DSLR
Motion Blur – Enabled at 50 percent
Lens Flare and Bloom – The values for these parameters could be customized to your preference.
Frames per Second – 24 frames since that is the value used for film and production vs. games.
Depth Fade Distance – Though it is heavily recommended to use the sampler tool and select the focal point of your camera shot; the values for these parameters could be customized to your preference.
I also followed one of his tutorials to create a simple Shaky Cam blueprint out of Unreal Engine’s preset templates. I then added this blueprint to my Cinematic Camera and rendered my video. The subtle movements and jitters in the camera add heavily to the realism aspect in my opinion since the camera establishes an element of immersion for the viewer.
Additionally, I made minor changes to my render settings when I was ready to render the camera cinematic. Here are my settings:
Post Partum and Reflections
And we’re done! Thank you for sticking to the end and going over my breakdowns. I’d like to take this chapter to reflect on my production and thank some fellow 3D Artist friends who stuck by my side and motivated me to complete this project when
I needed their support. Eanna O’Brien, Ashawn Masahir and Jansen Thorogood have been incredibly supportive of my endeavors and have been with me for the long haul of this project. Here’s to many more art journeys with you. I
couldn’t be more happier and grateful for the reception I’ve received due to this project. It’s inspiring to see so many people validate and appreciate your efforts.
The art community is one of the most welcoming, nurturing and helpful communities that I’ve been a part of. So writing this breakdown feels like I’ve come full circle and I’m getting the opportunity to pay this forward to other artists out there.
There is so much more left to learn! I’d like to make the process of creating environments more efficient and automated. That process would entail much more complex master materials with multiple blending options. Foliage and organic modelling is something that I’d like to take up in the future so stay tuned for the future!
I think that I got the opportunity to learn and refine my craft in terms of building interior environments. This experience really deepened my understanding of colour palettes, focused compositions and quality in narrative storytelling via environments.
We all grow and develop at our own paces and I always say this, “ the learning curve in an industry like ours is exponential or rather limitless. You can never reach a ceiling cap or plateau unless you choose to do so for yourself. New software and workflows will arise on a regular basis that will make your work obsolete.” Take these thoughts as a challenge to better yourself and elevate your artistic being. Learn that software, or discipline that you’ve been feeling ambivalent about taking on. Do it at your own pace and terms but do it.
Lastly, don’t compare yourself to artists out there who have years of experience under their belts.
They’ve been on the same journeys as many of us and with time, established themselves as the professionals that they are today.
Instead, compare yourself to the person you were yesterday. The skills, knowledge, awareness and abilities that you had yesterday. If you see growth, it means you’re heading in the right direction!
Thank you once again for making it this far and taking an interest in my work. If you have any further questions or inquiries, please feel free to contact me via my email or on Artstation!