Alex Whitt shared an extensive breakdown of the Interphone Control Panel project, showed us the Unreal Engine 5 workflow without post-processing, and explained the importance of imperfections.
My name is Alex Whitt, I’m a 3D Artist from North Carolina. I graduated from The Savannah College of Art and Design in 2019. Since then, I’ve been working for Leidos on Virtual Reality Training for the US Air Force.
Planning and References
Since graduating and starting work I hadn’t dedicated much time to my personal portfolio, as such I wanted to choose something to act as an exercise to express things that I had practiced and learned doing my job. I felt a small component or panel would be a great asset to make, being quick and small enough to put some detail into in a couple of weekends.
Naturally, the choice of a component like this control panel came from work that I’ve done. Besides, I've been interested in military aviation. I think it’s a good idea when choosing a project like this for the purpose of a portfolio to find something that hasn’t been done a lot before and might stand out. Searching through Pinterest or Google for military and aviation radios, I was looking for something I hadn’t seen before. This Interphone Control Panel stood out to me as being different, while still having room to model some fun shapes and add good texturing details. When looking for references I was lucky to find some photos on auction sites which can be a great resource, usually having photos from all angles. I threw everything I found into a PureRef, a great free tool to aggregate your references.
Having some nice photos from all angles also allows for some reference planes while modeling. Once that’s set up, blocking out becomes easy.
My typical workflow is to model high to low in Maya and ZBrush (if it’s necessary for details), though more and more I’ve found Substance 3D Painter can handle a lot of those details as well and in a non-destructive way. After blocking out, to get general proportions, I tackled the large forms that made up the chassis. I like to model pieces as they would be separated in real life, even if I plan on baking things down to flat geometry, I think that even in that case, the natural joints and creases read better. The modeling was all fairly straightforward, working from the large forms down to the smallest, keeping in mind to keep topology simple enough to stay manipulatable.
Booleans are also a must for assets like this with a wide variety of uniform cuts, holes, and bevels. Another reason to keep geometry simple is for cleaning up the topology after booleans to maintain good smoothing. A lot of the smaller details like the bolts, screws, and switches can be duplicates or small adjustments on the same geometry to save time and to add to a collection for future projects.
Low Poly and UVs
For the purpose of this project, being a solo portfolio piece, I knew I would be taking images very close up, so I gave myself more leeway than I normally might on polycount. If I were to optimize an asset like this for a game, where it would be in, an environment with many other props like it, many elements like screws could be baked flat, and elements like switches and knobs can be shared easily across assets.
The UVs were laid out uniformly and un-stacked for as little mirroring of details, but if I was to optimize for a game, a lot of the shells for duplicate objects can be stacked and enlarged to retain detail when the resolution is lowered. The baking was done in Marmoset Toolbag as it gives much more control than the built-in baker in SP. It was important to keep a good naming system for the high and low objects for baking to be able to tweak bake settings like skew and offset for individual areas.
Object separation can also help with the recent geometry mask features in Substance 3D Painter, allowing to focus on and isolate parts more easily.
The texturing process was my favorite part. Adding all the small contextual grime and wear is what can elevate even the simplest of assets. Though, before starting, I’ll usually prepare any decals I’ll need beforehand in Photoshop so I don’t have to go back and forth later and can just focus on texturing.
Using alphas in this way as projections on fill layers makes iterations easy and non-destructive later, when changes may need to be made.
For me, the texturing process is all about layering subtle and contextual details rather than using one or two broad strokes or aggressive surfaces. Walking the line between too flat and too busy can be a difficult one, but staying honest to your reference is the best tool when going for realism. Not every asset has to have wear everywhere, but almost everything will have some amount somewhere. Looking at how an object is used and touched can inform where that wear should go. If the wear makes sense, I think it’s safe to exaggerate without going too far.
For instance, most of the wear on the chassis panels falls along edges where bumps and scrapes occur and where someone frequently grabs and uses fasteners, while dust or dirt collects in cavities where it wouldn’t easily fall away. As far as layers go, I use a base with multiple fills using Alpha textures to break up roughness and albedo values. Then, I apply smart masks to direct edge and cavity details and, finally, I use hand-painting layers when details are unique. It’s extremely important to use variations whenever possible, it helps greatly in hiding procedural elements. Rarely is an objects’ color or roughness one single value all the way around, the imperfections are the key to realism.
For final renders, I like using real-time and particularly in-engine images as they are the most representative of a final product in my case. Also, if you can get something to look good in real-time in-engine, I think that shows the fullest of ones’ abilities, at least for game art. Besides, I'm not inclined to do any post-processing outside of the engine as what you get inside seems the most fun and authentic and helps uncover any tricks you can use in Unreal Engine 5 in my case. Though, with Unreal Engine 5, not many tricks needed to be employed. Lumen is my favorite new feature of the engine. Real-time global illumination makes getting realistic lighting a breeze. It can really be as simple as a single Directional Light and a Sky Atmosphere, Sky Dome, and Sky Light.
Being in-engine also allows the ability to switch up environments and settings quickly to see what might look better. With dynamic lights, cameras, and all the parameters you could ever need at your disposal. Your background can be anything from an HDRI, a white void, or a whole environment.
Or if you require no background at all, when using the high-resolution screenshot tool, you can enable Custom Depth as a mask and render only the assets you want to see.
Sequencer is a powerful tool, combined with a CineCamera, you can make turntables and fly-arounds of an asset through keyframe animation to add interest versus simply a static image.
You can even go beyond Sequencer and use a blueprint to add interactivity and sound to add a whole other facet to a portfolio piece. The sky becomes the limit when working in an engine like Unreal.
Keys to Creating Appealing Tools
I think the most important thing when creating realistic props is to create real details. The base is important, but the small details like scuffs, fingerprints, friction wear, roughness variations, and imperfections are crucial in carrying an asset across the finish line. The great thing about that is that it doesn’t require some massive masterpiece to create or complicated work to do. You can take a simple everyday object to the extreme, and that’s the most fun to me.
No matter how simple an asset might appear, in the final work phase, you'll always be able to elevate it and make it look lived-in. What you do in the beginning – correcting and appealing proportions, accurate material qualities, and colors – is a foundation. However, that icing on the cake is what makes it ultimate.
My biggest advice is to not get caught up in needing to make something too large or involved but to be able to plan and execute on an idea to its fullest. Even if it’s not the best, completing something is always better than not. When you do this, you can learn from mistakes and apply lessons learned to the next project. That will always keep you moving in the right direction.
You may find these articles interesting