Aaron Winnenberg showed us the working process behind the Victorian Bedroom project, explained the modeling process in Blender, and talked about using Unreal Engine 5's new features to create environments.
Hi, my name’s Aaron Winnenberg. I’m currently a Senior Environment Artist at Illfonic in Seattle. I’ve grown quite a bit since my last couple of articles with 80 Level (around 4 years ago). I graduated with a B.A. in Game Art and Design, completed several projects with Dekogon, became a freelance mentor, participated in several environment art challenges, and published Predator Hunting Grounds with Illfonic.
The idea behind the Victorian bedroom was to challenge my modeling skills and find new creative methods of accomplishing difficult tasks. This project was less about the composition of the scene and more about the content of the scene. The composition was just a bonus, and something I’ll probably push further in the future.
As with most of my personal and professional projects, PureRef boards help a lot when it comes to establishing what it is I want to accomplish. I started with some Victorian-themed concept art and images and slowly picked away at what I wanted to model out of those scenes, adding more references as I went.
Since this article isn’t a “how-to model” article, I’ll just share some of the less nuanced skills I found while modeling out these assets. Also worth noting, while most of the props in this scene are “game-ready”, I knew I’d be working with Nanite, so I took some liberties with the poly count.
Build modular when it comes to architecture! I’m always pushing for this professionally and in personal projects. When things start to break the grid, you can oftentimes wind up with a lot of cleanup work later on. However, this doesn’t mean everything has to be a box. Just have an established footprint and keep it in mind while modeling. There’s plenty of resources on this topic, so I won’t go into the specifics.
Establish a texel density for tiling materials and stick to it. I like to use Blender’s TexTools add-on.
Using displacement for ornate details, cutting the fat, and cleaning up.
Blender’s fancy Bevel tool!
Tufted fabric tricks from this video:
Cloth simulations using pressure settings and low gravity with a little bit of sculpting.
Using resources I already have to make something else.
I’ve got a simple human mesh that I use in all my Blender files for scale. With a little pushing and pulling, I was able to turn it into the sewing mannequin with little trouble.
My texturing workflow hasn’t changed much over the last few years. I’ve almost always worked in Substance Designer/Painter. The workflow heavily depends on the asset and shader requirements. Sometimes I’ll make a tiling material in Designer and leave it at that. Other times I’ll make materials and tools to bring over to Painter to make one-to-one textures.
All the architecture in the scene was textured with tiling materials made in Substance Designer and one wood material I took from a smart material in Painter.
When making tiling materials, keep your established texel density in mind.
Most of the patterns were found on the internet and processed in Designer (one of them from Substance Source). I’ve done a lot of ornate pattern work in the past and wanted to give myself a bit of a break with that on this project.
One to one textures were done through baking from the high poly and building up the layer stacks with preset materials, my own smart materials, effects, and generators.
One thing to note about Substance Painter’s preset smart materials: Change the blending modes of the height and normal channels. By default, they’re set to “Normal” whereas they should be set to Add and NormalMapDetail.
Textures like the rug and map of the globe were borrowed from the internet. Almost all of the textures I bring into the engine are at 4k, leaving the engine to take care of downscaling.
Interior Lighting and Architecture
Yeah, I skipped any kind of blockout for this scene. Not something I usually do.
The initial lighting setup was a basic Sky Light and Directional Light using UE5’s Lumen. Since I had established dimensions for my interior modules, I just snapped them roughly to where I thought I’d want them, giving the camera enough breathing room to capture whatever props I’d add in the future.
For every project, I like to set up a master environment shader that can pull most of the shader work. Since this is a pretty tech-light scene, I didn’t need anything too fancy.
A basic setup for Albedo, channel packed MRA, Normal, and switch parameters for things like emissive, vertex offset, and two-sided sign. Emissive and offsets were being used in things like the candle flames for movement based on vertex color. The two-sided sign was being used for some of the two-sided materials in the scene. By default, the shader is set to single-sided, but those options can be overridden in the instance.
Other master materials included decals, glass, light functions, and masked. All are very basic setup as this scene didn’t require much in the shader department.
Props and Tools
As I brought props to the scene, I kept in mind that Nanite and Lumen don’t get along with translucent shaders.
I wanted to use Nanite wherever possible, so I generally separated assets where I could to avoid any issues. An example is the bookcase. The case itself is its own mesh, and the glass is a separated mesh placed at the same transform. That way I could assign the bookcase to be Nanite, the glass to be your average polygon.
I’m a huge fan of making editor and environment tools. However, this scene didn’t need much in the way of tools. The only tool I made was a basic spline tool to create rows of books. Randomization of book meshes, amount, placement, and rotation are driven by parameters exposed to the user.
Lighting and Post-Production
Similar to how the project started, the end result was much the same. A basic Sky Light, Directional Light, and a few point lights for the candles. Much of the lighting work was done trying to balance Lumen’s new global illumination between the lights.
For this project, I wanted to use Nvidia’s new DLSS anti-aliasing. It’s amazing! However, I did run into a snag trying to add some Niagara particles. As the particles moved around the screen they would create trails while the DLSS tried to catch up. I’ve heard since then that Nvidia's fixed this issue, but I’ve yet to find out.
Outside the room, I’m using the Sky Atmosphere actor, some SpeedTree models I had laying around, a quick World Machine landscape, and some fog cards I made. Overall the impact on the scene is minimal, but I do like the moving tree shadows being cast into the room. I ran into a bit of trouble with World Machine height maps creating a very skinny landscape in UE5 compared to UE4, but I was able to resolve the issue with a different file format (PNG I believe. It took some searching).
A lot of artists know this already, but work is never finished, only abandoned.
As a piece to practice pushing my modeling skills, I feel like I found a bit more comfort in Blender’s ability to adapt to my needs. As for the engine side of things, I do think I could push the composition a bit more in the future.
UE5’s new tools are fantastic as long as they don’t drag down your frame rate. I’m sure as the tools improve and are used by more of the community my understanding will also grow.
If there’s anything more anyone would like to know about this scene or workflow (or anything really), I’m an open book. Feel free to reach out on ArtStation!
Aaron Winnenberg, Senior Environment Artist
Interview conducted by Arti Sergeev
You may find these articles interesting