A Student's Journey into Arch viz by Wessel Huizeng
Recent Rookies entrant Wessel Huizeng gives an extensive breakdown of his Arch viz scene. With a focus on creating various 3D projects using the Design Thinking Methods, he has learnt to develop a mindset in to thinking of something great that can help him to achieve goals that he thought was impossible.
With a college degree in game art, the right mindset, and curiosity to keep learning and growing, I taught myself how to create arch viz scenes inside a real-time game engine like Unreal Engine. I started my arch viz journey a little over a year ago. Before I found out about arch viz, I wanted to do something with game environment art. I never really found the motivation or passion to finish any of the projects that I worked on, but that changed when I found out about arch-viz. Before I started my journey, I did some research about the industry and the traditional pipeline that is being used. I quickly found out that Unreal Engine 4 (UE4) was a big upcoming game changer within the arch viz industry, and I knew I wanted to be part of this change. I have always had a passion for interiors, and by combining this with the knowledge I had in creating game environments, I am able to set up optimized, photorealistic scenes inside UE4.
Before I got into what I’m doing now, I started off doing a small course lasting two years that focused on becoming an accountant. I quickly realized that I needed a creative surrounding, and I wasn’t getting that from my accounting course. After doing some digging, I found out there was a study about game design in one of the nearby colleges. I always felt like I was more creative than the people I surrounded myself with. I wanted to try out new surroundings where I could explore my fantasy within the form of concept art. After doing one year of concept art in college, I found out about 3D. I decided to actively follow all the 3D courses offered by the study. Quickly, I found myself working 24/7 on trying to create and get better at environment art. After three years of 3D, I graduated from college not knowing what to do or where to go.
I decided to get a better degree by going to university. Once in university, I took a one-year break from creating environments, as I saw no progress in my skills. In that first year, I made the choice to use my life savings to travel to different countries within Europe; traveling is one of my biggest hobbies. During my travels I got to understand different cultures and their architecture better; this got me intrigued into looking more into the different styles over the world. Before I knew it, I had the idea of recreating some interiors that I had found online.
After finishing my first official project, I found my real passion and goal in life. From this point on, I surrounded myself with the right people and developed my mindset over time to be able to create photorealistic arch viz scenes within UE4. This is where my journey started!
In this interview I will break down one of my recent scenes from “Top Floor,” and I discuss in detail the pipeline that I have developed over time.
It all started with a lecture we had from the amazing artist Maarten Hof. During his lecture, he mentioned that participating in a contest helped him get out of his comfort zone, put his work out in the world, and helped him overall become a better artist.
After doing some research I found out about The Rookies in 2019. At the time, I wasn’t yet ready to participate, as I had maybe one project done; however, it was a great way to observe all the entries and create something unique that hadn’t been done before within the arch viz category. I quickly realized I couldn’t find any arch viz submissions that were created with UE4, which became a great motivation to keep pushing myself and my artwork. I set a goal to keep pushing my Unreal Engine arch viz journey and upload my progress on the Rookie Awards 2020. I wanted to show a bigger audience that it’s possible to create photorealistic arch viz scenes inside a real-time game engine. Besides that, it was a great way to push my work, gather feedback, and compete in a friendly way with other great, talented artists.
Starting with Substance
During my first year of college, I discovered 80 Level. I used this for the great breakdowns it had to increase my knowledge regarding game art environments. During my time reading articles I came across the first trailer of Substance Painter 1.0; however, I didn’t start using it right away. After I got a little more experienced, I started to investigate Substance Painter more. I quickly found out it was a faster way to texture my props than I used to do with Photoshop. I started to experiment around creating basic textured assets — this was all it really came to. When I discovered arch viz, I started to look into software that I wanted to intergrade within my pipeline. As time passed, the market has moved on a long way from just tools that were used to texture assets. Procedural materials were something that caught my eye. I started doing some research into Substance Source because I’d had a great experience using the software in the past.
After some time, I knew it was possible to integrate Substance Source within my pipeline; the only thing that was missing was knowledge. Conveniently, I had met a friend, Alex Beddows, while playing online games, who, at the time, was getting familiar with the craft of making materials. I asked him if he could inform me some more about procedural materials. After a good talk, I knew everything that I had to know to start integrating Substance Source within my own pipeline.
From that point on it became an iterative process of how to improve the use of Substance within my pipeline. Here is where I noticed that I can be flexible and efficient by reusing a lot of similar materials. The reason why I personally like to work with Substance Source materials is that it comes with a great variety of options to redesign an exciting material. This way I can texture a whole scene using only around 20 materials.
For modeling I use Blender. I really like working with Blender because it’s a free-to-use, open-source and very powerful 3D modeling software. I usually start with a box polygon, which I can shape into anything I want using various techniques. For creating higher-detailed objects, I either download them from Dimensiva or sculpt them with Blender’s sculpting tools.
For texturing, I use the Substance Launcher, which comes with a built-in Substance Source library. I choose to use the separate launcher over the plug-in so I can have a personally built library on my computer. This allows me to simply drag and drop my library into whichever programs I want to work with.
For rendering, I use UE4. Because of my background in creating game environments, I can use the different optimization techniques that I learned over time within this game engine to create optimized scenes that can be used in VR. This is an interesting feature for clients to be able to walk around their “future purchase” or help the visualize options they never would have intended to have. For me that is the future of the arch viz industry.
Using Substance Source for arch viz gives a great benefit of having full control over the materials and settings directly inside the 3D program. Having all the textures available — which come with the materials on import — helps me make custom materials by reusing the different texture maps that are available.
Having seamless textures and accurate PBR materials is a huge benefit for achieving photorealism — and accurate lighting.
The Journey into Arch-viz
“Cozy Apartment” was one of my first-ever arch-viz projects. For this project, I wanted to figure out what, for me, was the best game engine to use for my arch-viz journey. I mainly focused on setting up my projects inside the powerful Unity and Unreal Engine. I quickly discovered that Unreal had more potential for the results that I wanted to achieve. I could quickly set up both projects in the two different engines by having the Substance Source library downloaded on my computer. I could drag and drop my materials and models into the scene, and then all I had to do was apply the proper materials and render the scene twice in both engines. By only using what was available within the engine upon launching it, I wanted to see where I could achieve better results. In the end, I based my choice on which engine was faster and more efficient to work within achieving a photorealistic render.
After I figured out what engine I wanted to adept within my pipeline, I wanted to start my first official project. This is when I created the project “You and Me.” During this project, I focused more on how to set up lighting, light mass, best material workflow, and, finally, how to create great rendered images using only UE4. I used different reference shots I could find of a real interior. Trying to recreate real-life interiors really helps me develop my 3D skills. One of the things that are important within arch-viz is to get the scaling down perfectly; objects can look weird when the scaling doesn’t feel right.
Real interior vs my take on a CG version:
Now that I had my pipeline worked out, I wanted to take on a bigger challenge. At the time, I got more and more questions on my LinkedIn about achieving a photorealistic render inside a game engine. I noticed that a lot of companies are skeptical about the power a game engine has to offer within the arch-viz industry. This is where I got the idea to create one of my recent projects, “Their Place.”
Their Place is based on an arch-viz project created using traditional methods like 3ds Max, Corona Renderer, or V-ray. I wanted to recreate this exciting render by using only UE4 as my main real-time render program. I used this scene as a conversation starter whenever I get invited to give a talk at a company about my workflow inside UE4; with that project, I can show companies that it’s more than possible to achieve the same/similar results as you could using the traditional pipeline.
Besides, “Their Place” was a great exercise for the eye when it came to lighting and 3D.
The first thing I do and find important is to find good reference that I want to work with. There are infinite resources available when gathering references. Personally, I make a lot of use of watching YouTube channels like Never Too Small and Living Big in a Tiny House. Besides watching videos for reference, I also like to use Home Designing.
After observing all the references, I simply make screenshots of elements I like and implement them into a mood board that I make using PureRef.
For this particular project, I recreated an existing scene that was made using the traditional methods. This is part of a series that I do where I showcase the power of photorealism inside UE4 and compare it to renders that are made using the traditional pipeline.
When I have my reference, I start off by importing my blueprint and creating the block-out for the scene. I first start tracing out the walls by simply extruding along the blueprint. After that, I cut all the walls in the corners and create sperate meshes of each wall. This allows me to keep all the walls at a low lightmap density once I import it into UE4; this way I greatly increase my building times without having any loss of quality.
When I create my assets, I always separate them into groups: big, medium, and small. I start off creating the bigger assets, so I have a better feeling of how the scene is coming together. Once I have my bigger assets in place, I start to fill in all the furniture, etc. Having all the bigger objects in place gives me a really good idea how I can fill in the rest of the scene with smaller props like plants, tools, books, etc.
I create most of the big and medium assets myself; I do this because most of those are unique pieces that aren’t available from any online sources. When it comes to the smaller props, I usually use downloaded assets from Dimensiva. Having a large variety of small props helps me save a lot of time. Reinventing the wheel isn’t a smart way of working, as it costs a lot more time. But modeling small props yourself can help develop your skills in 3D.
As of right now, there isn’t a huge library available that provides optimized arch-viz models that can be used within your UE4 scene. Because of this, I download assets that are too high poly for optimized use within a game engine. I make sure that I download/buy the highest-quality models that I can find. Having high-quality models allows for an easy reduction in polys by just using un-subdivide on an object. After un-subdividing for a few times, I manually edit the mesh, so everything stays optimized and I make sure I don’t have any n-gons in my mesh.
I make sure I have a copy of my high-poly variant so I can bake a normal map onto my low poly using Substance Painter. This way I keep the quality of the high-poly mesh without having to use that much polys.
When I have my walls ready, I usually create a box around my scene. This box will eliminate any light that is able to leak through edges. A shadow box can be rendered at a low lightmap density and doesn’t require a good unwrap, as we won’t see the shadowbox from inside our interior.
Personally, I have an iterative process, meaning that I unwrap around every five models that I make. This way I don’t lose my motivation if I must unwrap my entire scene at once.
When it comes to unwrapping, I mostly do all the assets myself. Having complete control over how my unwraps are going to look results in a better quality than using automatic mapping. For some assets, I can get away using automatic mapping.
Having a high-quality unwrap saves a lot of time achieving great lightmaps. UE4 generates a lightmap from the existing UVs you export with the asset. Having a good unwrap, with the cuts placed properly, will result in a great autogenerated lightmap result. This way we don’t have to create our own lightmaps.
Before I start unwrapping, I make sure that I have a texel density in mind that I want to work with. Working with a consistent texel density allows me to have a better quality of my assets when I apply my materials and prevents me from having to duplicate materials to match scaling on other objects. It also prevents materials from becoming blurry when getting closer to an object. Because I work with procedural tileable materials, my UVs don’t have to be in the 1:1 UV ratio. Note: I have to work in the 1:1 ratio if I would bake normals or texture manually inside Substance Painter.
Working with a texel density requires to have the texel density add-on installed inside Blender. It can be downloaded for free.
When I unwrap my assets, I want to make sure I hide the cuts one face away from the side that is visible within the scene; I call this my safe area. Having a safe area helps hiding artifacts on the seams if you would have to bake on a lower setting, like for VR.
Setting up materials:
When I’m in Blender I want to make sure I apply the right materials to the face that I want to have a certain material type in UE4. I simply apply materials to the object I know are going to have a different material applied inside UE4. Having this set up correctly makes it an efficient way of working with the Substance procedural material library. When everything is set up correctly, I can easily drag and drop the right material type onto the mesh.
Personally, I’m a fan of exporting my assets as custom .fbx files. Exporting everything myself gives me more control over the different values. When I export, I make sure that I export my scene within the right groups. I have a group for all the walls, furniture, and small props. Selecting everything in one group makes it easy to import to UE4. I simply have to drag and drop and put the values on 0 for all the objects to be in the same position as they are in Blender.
Setting up the lighting:
Like mentioned, I work iterative, so I like to render in between stages. This way I can do early quality checks and test my assets. If there are any mistakes, I can quickly resolve them. I like to create high-quality renders right from the start, as this gives me the most information about how things might look later on. I start off by importing block-out and HDRI and setting up the light mass importance and post-processing.
Now that everything is imported, I need to make sure I increase my lightmap density to achieve better-looking results. When I increase my LMD (lightmap density) I want to make sure I get as close to red as I can without using too high resolutions, the max I shoot for is 2048. This way I keep my baking times low and am I able to render out a whole scene on production quality within an hour on an average PC. This makes working in iteration to do quality checks efficient.
I’m able to stay under a resolution of 2048 because I cut all the walls into smaller places where the corners meet. In the corners, we won’t get any artifacts and I can keep the resolution low.
HDRI and Skylight:
For my HDRI I use HDRI Heaven. This website comes with great, free-to-use HDRIs that fit my scene perfectly. I want to make sure I use an HDRI that fits the mood I’m going for. I wanted to go for a moody, warmish place. Having a cloudy day as my HDRI really helped with achieving that result. When importing, I make sure I increase the HDRI resolution by opening the file and manually increasing its resolution. Note: This will also increase your baking times, so don’t go too crazy with the values.
My settings: I want to make sure it’s set to baked, as I find that this gives me the best results.
For my backdrop, I simply copied the one from the UE4 basic render project that can be downloaded for free from the marketplace. I made a simple shader (texture of a background converted to a parameter) that allows me to quickly swap out the different backdrops in my scene.
I can set up my lightmass importance by importing one from the modes tap. After that, I make sure that I apply lightmass portals on the open spaces (Windows) within my scenes. This allows the engine to accurately calculate all the photons in the right area. Once that is set up, I can increase my lightmass setting over in the world settings. I play around with these settings until I’m happy. Note: You have to bake to see the changes you made.
The world settings will be different for each scene. Understanding what each of the different settings does helps you create an amazing result. I highly recommend checking out the UE4 documentation before you get started.
Post Processing Volume:
When I have created a foundation for my lighting, I want to enhance what I have by importing a PPV from the modes tap. When importing, I make sure it covers the whole scene. I use PP to enhance my lighting and illuminate darker spots in the shadows and overall lighting. The way I approach my world settings is that I want to leave everything raw, as you would when shooting photos. Going too crazy with world settings gives you less control in the end. Meaning that when I bake my world settings, I want to let everything look flat. I use PP to bring the environment to life. Doing this in PP gives you a lot of control during the build of the scene. As PP is real-time, we don’t have to re-bake the scene if we would need to make changes.
The most important things to go over are white balance, color grading, exposure, and screen-space reflections. But in the end, you want to make sure all the options that you want to use go well with each other.
Understanding what all the different options do is a great skill to have if you are looking for great results.
Applying Materials using Substance Source:
The Substance Source library has a great high-quality procedural material library that really helps boosting your scene. I personally prefer this library because of the parameters that come with a material. This allows me to create many variations of one material without needing to purchase any new ones. This is especially great when you just start out or just don’t have a large budget to spend.
These materials can also be used within Substance Alchemist to create your own unique materials that you might need for a scene, I personally haven’t looked into it that much.
The materials can be easily downloaded from their website or the Substance in UE4 plug-in that can be downloaded for free from the marketplace.
Downloading the materials will also give you access to all the texture maps that come with the material. I find that great because I can use these tileable textures like the normal maps to create patterns into other custom materials to break them up.
When I have my materials downloaded into my scene, I can simply drag and drop them onto my objects. Because I have set up my material data inside Blender, I can drag and drop multiple materials onto one asset. This makes it an efficient way to work, especially if doing client work. You can easily change materials on the spot to discuss the different options with your clients. Because we are using a real-time engine, we don’t have to rerender and recalculate the lighting within our scene.
The way I create my models allows me to depend on Substance Source for a great part of the project. The one thing that is hard to do is creating a realistic rug that is set up to change in real-time.
I created a simple texture in Substance Designer while following Barry Lowndes’ tutorial on how to set up a parallax occlusion shader inside UE4. I combined this shader with an event graph that I have created. It’s a very simple graph that allows me to switch materials while I’m walking through the scene. I set up a collision box for the player to collide with; when the player is within this box it can change the material by pressing the X key.
This graph allows me to incorporate multiple materials that would fit into different scenarios. Having a walkthrough is a professional way of displaying your final work; being able to change materials in this walkthrough really adds another dimension to the user’s experience.
I try to optimize my own pipeline as much as I can throughout my iteration. Being able to do most of the work within Blender, Substance, and UE4 greatly increases my project efficiency.
I also try to be efficient when creating my final renders. I want to be able to produce high quality renders within a short amount of time. With my current setup, it takes me less than a minute to set up my camera, put it in position and render out a shot that I can use for my portfolio.
I’m able to do this by copying my post-processing settings onto my camera. I can import a cinematic camera by going to the modes menu and drag it into my scene. I can edit my camera settings in the details tab. Because I can copy my post-processing settings into my camera by manually typing them over, I only have to experiment with the current camera settings, which doesn’t take a lot of time.
These are the preferred settings I personally like to work with:
Now that my camera is set up, I can take screenshots with the tool that UE4 provides. Before I do that, I want to make sure that I am roaming around in the right camera and that I have my render quality doubled for better results.
Advice for arch-viz beginners
It took me a long time before I knew that I wanted to do something with arch-viz. I started off wanting to become a game environment artist, I have made a lot of “good” mistakes while on that journey.
Admitting my mistakes and then turning them into something that made me smarter and better helped me a lot on my arch-viz journey. I find it important to not only focus on production skills but also the mindset behind it. Together these two can make you a great and unique artist within the arch-viz community.
What I noticed is that, personally, I really needed to work really hard to get better at what I’m doing — I worked almost 24/7 on developing my skills when it came to production. When I started my university course, I found out that understanding the theory of what you’re doing is really important to establish a fast and efficient growth. Combining these assets helped me achieve better results.
Just know that you don’t need innate talent to be able to find work within this industry. Work hard, ask for a lot of feedback from professionals (LinkedIn, Facebook, Discord), and the most important thing is: Don’t give up. It took me around five years to be in the position of where I am now, and I still have a lot to learn.