Georg Shao talked about how he captured a vintage feeling and created still-life-style renders, providing a step-by-step guide to texturing wood and adding appealing lighting details in Unreal Engine.
Introduction
Hello everyone! My name is Georg Shao and I’m from Austria. I’m currently working as a Junior Prop Artist at PUBG Studio in Amsterdam, and I love drinking black coffee. In 2020, I started learning 3D at my university as part of the game art course. I quickly discovered that I enjoy the entire process, from creating a 3D asset to presenting it (yes, even making the UVs). As someone who used to draw a little bit of still life, it was a completely new experience for me. The amount of control over the textures, lighting, and camera angle in the 3D world is fascinating.
During my first 2 years in the university, I looked up many tutorials to learn new workflow and game art knowledge, such as Trim Sheets, modularity, ZBrush DynaMesh Workflow, and so on. I always try to apply them in my school projects or personal projects to become familiar with them. They didn’t look good most of the time, but I was always happy to try out new things.
During a portfolio review on Beyond Extent in 2021, I was advised to focus on props or environment art. At that time, “80s Vending Machine” by Jonjo Hemmens, “Hand Drill” by Jason Ord, and “Tanto Knife” by Rick Greeve were sources of huge inspiration for me. It always fascinated me that a prop without complex geometry can achieve such a high quality. And that’s why I decided to become a Prop Artist.
In 2022, I completed my first portfolio piece “Ihagee Duplex – Folding camera” and was lucky enough to work as a freelance Prop Artist for 6 months at NVIDIA.
During that time, I also started teaching 3D modeling and texturing. After I graduated in 2023, I worked as a Texturing Artist for “Eli ’s Quest Asset Pack” at Power Pixel Studio.
At the same time, I also participated in the Studio Project “Philippine Markets” asset pack on the Beyond Extent Discord server. That’s also where I got to know my current Lead Johann William Löffler, who was the supervisor of the project. He referred me to PUBG Studio and I joined the company in November 2023 to become a Prop Artist.
Inspiration & References
When I was brainstorming for the project, I knew that I wanted to make something vintage and old. My goal was also to get better at wood sculpting and texturing. As someone who likes making hand brew coffee, I thought “Why not make an old coffee bean grinder?” I started gathering references and sorting them into different categories. To avoid forgetting what I liked about each reference, I added notes to them.
One tip about gathering references is to search for pictures at online markets such as eBay or Etsy. Since people sell second-hand products, they tend to take close-up photos of them. This way, you can have great references of the surface details and study what the wear and tear of this particular object looks like. This is important to make a 3D model believable during the texturing phase. Also, if you want to search for similar photos related to one particular reference, you can use the Search by Image function of Google or Bing. This function is also helpful if you have a picture of an object and don’t know its exact name.
Modeling & Sculpting
In the beginning, I looked up the dimensions of the object on eBay and started blocking out the base mesh. For the wood part, it was straightforward. I replicated it the way it would be assembled in real life.
The metal handle was the tricky part. Due to its curvy shape, I wanted to make a blockout that allowed me to change the roundness of the curve at any time without having too many subdivisions. I created a simple low poly blockout and added creases to hold the edges. That way they wouldn’t be smoothed while viewing the model in the smoothing preview. With this method, I can play with the curvyness non-destructively while maintaining the low poly nature of a blockout mesh. If I’m happy with the shape, I would only subdivide it to create the final shape. If you want to know more about this method, you can watch the tutorial by Andrew Hodgson:
After finishing the blockout, I started working on high poly. I used subdivisional modeling for most parts of the model and imported them in ZBrush to sculpt wood damages and ornaments. Only the high poly of the big round shapes was made using the DynaMesh Workflow in ZBrush. It is faster this way than making them SubD ready.
In ZBrush, I started sculpting the wood using 3 different brushes: Clay, Dam Standard, and Trim Smooth Border. I prefer only using the default brushes, so I can focus more on sculpting instead of thinking about what kind of brush I should use. I used the Clay brush with a square alpha to build up an uneven surface. You can also use the Clay Tube brush. After that, I used Dam Standard to carve in some wood fibers. In the end, I used the Trim Smooth Border brush to flatten some areas. I learned this method from the Polygon Academy.
Now I have a good base to start working on. I added some Wood Displacement Maps on a layer, so I can control the intensity of it. The Displacement Maps are from Muhammad Sohail. You can buy them on ArtStation. After that, it was mainly observing the references and adding interesting details from them.
In comparison to the top part, the rest of the wood pieces don’t have that many damaged areas. I only chipped away some edges using Trim Smooth Border Brush.
The ornament on the metal piece is simple. I drew a mask, inverted it, and inflated the geometry, which I smoothed out a bit afterward. For the letters, I created a layer first and added an Alpha Mask on top of it. I used the Stencil Function to sculpt the text and smoothed it as well. Since everything is on a layer, I can control the intensity of all the objects.
One thing I like to do at the end is to sharpen some details using either the Contrast Target brush or layers. Using the brush is faster to sharpen some local details. But if you want to sharpen everything, then it will take more time. With layers, you can use the Polish Function to smooth everywhere and invert the layer intensity to achieve the opposite effect. I exaggerated the effect in the video, so it is more visible.
Low Poly & Baking
I decimated the top wood part in ZBrush to create my low poly because I wanted to maintain its irregular shape. As for the rest of the model, I deleted the supporting edges of the high poly and optimized them. Since my main focus was on texturing and sculpting, I didn’t spend too much time on it and some parts can be optimized to a greater extent.
I kept the front piece of the drawer separated, so I could offset it later to make it more realistic.
For texel density, I aimed for 60 px/cm, so I could take some close-up shots. Also, most weapons in first-person shooters have about 75px/cm texel density. So 60 should be a good number for a close-up. That’s how I estimated the number. I ended up using one 4K texture for the wood pieces and one 2K texture for the metal parts.
UV unwrapping was simple. If possible, I always try to straighten the UV shells for a cleaner bake result. When a certain part is less visible, you can also scale down the UVs up to 20% to free up more space.
The next step is baking. I used Marmoset Toolbag. For preparation, I shifted the movable parts for baking. If I kept the drawer inside the wood part, its AO would have been mostly black. In that case, if I wanted to pull out the drawer for beauty shots later, the black AO would still be visible.
I baked the texture maps in 16bits TARGA format for better results because it is uncompressed and I can have a smoother Normal Map with 16bits. Just keep in mind that, after texturing, you should export the texture maps in 8 bits for Unreal Engine.
Texturing
The next step is texturing. Most of the time, I approach this process in two steps: creating a base material and adding details. Let’s take a look at the wood part first. You can see that the coffee bean grinder is mainly made out of varnished wood. For the base material, I separated it into “base wood” and “varnish”.
I used “Wood American cherry” as a base with some adjustments. After that, I added color, height, and roughness variations using Fill Layers with different kinds of Directional Grunge Maps as masks.
Then I created an anchor point for my base Wood Folder, which is important for the varnish. It is a single Fill Layer with the Color blending mode being set to overlay, low roughness value, and a little bit of height because the paint is going to have some thickness on top of the wood.
The important aspect concerning this layer is to create a mask for it. Since wood usually has a bumpy surface, there is going to be more paint on the high part and less paint in the cavity.
Since I sculpted some damage on the wood, those parts also wouldn’t have much paint on them. With these points in mind, I can start creating my mask. I started with a Curvature generator to mask out the cavities. You can do that by changing the mode to “Cavities”. You can also fine-tune the mask with other parameters. On top of it, I added two Perlin Noises with the blending mode set to “Subtract” and “Multiply” to break it up. I then created an anchor point to use in the same layer later.
As you might remember, we created an anchor point on the Base Wood folder. Now we can use its Height Map information. Because 0 (black) and 1 (white) of the Height Map means the minimum and maximum height, it also represents where the paint is going to be. After some adjustments, I subtracted it from the Cavity Mask we created earlier. I also added a Paint layer in the end so I could manually add or take away the varnish.
Once the base is done, we can move on to the fun part, which is adding details. I started by copying the Base Wood folder, created a black mask on it, and painted some damage. As you can see, I also added an anchor point on top, which will be used later.
The next step is to add more details on the top part. First of all, I wanted to add more color variations to the damaged wood. Initially, it looked too fresh. I wanted it to appear like the damages have existed for a while. I used an HSL filter to change the color and used the “Damage Mask” of the anchor point. On top of it, I added a Grunge Map to break up the mask.
I liked the color variations on the front part of my main reference. I cropped out that part of the image and projected it on the model using the Stencil Mode. However, it looked too low resolution and strong. It felt out of place and didn’t have any Roughness information. That’s why I added another anchor point and I used its Color information for the Roughness and Height channel. I needed to adjust them with the levels. Zak Boxall, a Texture Artist working in the VFX industry, showed this method in his Mari tutorial. I thought, why not use the same technique in Substance 3D Painter? After that, I lowered the opacity of the base color to make it more subtle.
The rest of the texturing process mainly involved observing the references and bringing interesting details into the textures. Below you can see some of the examples. During this process, I used a lot of stencils that I bought from the ArtStation Marketplace. Using stencils is a good method to add uniqueness to your model. I recommend everyone watch the stencil tutorial by Rick Greeve on ArtStation learning. While texturing the drawer, I added some storytelling elements to it. I painted some extra varnish on the edge of the drawer as if someone didn’t care about the paint going over. Since it is a coffee bean grinder, I also added some coffee powder on its surface.
The texturing process of the metal parts followed the same steps: creating a base material and adding details. Adding dust was the most important detail to achieve the vintage feeling. I also recommend a tutorial “Substance Painter: Pushing Your Texturing Further” by Jason Ord.
I uploaded my Substance 3D file, so feel free to download it and take a look. If you have any questions, don’t hesitate to contact me through ArtStation or LinkedIn.
Lighting & Rendering
I separated my presentation of this prop in two parts. The first one is to present it in a diorama. That way the asset feels more grounded and you have a lot of creative freedom to inject your personality into it. The second one is to present it with studio lighting, so the model can be viewed neutrally.
The first step involved gathering lighting references. I searched for “coffee bean grinder still life” on Pinterest and collected photos that had an appealing color scheme and lighting.
Then I started working in Unreal Engine. I imported my model in the UE5 and added Quixel Megascans models to create a diorama. I followed the structure of my references: a main prop on a table surrounded by small assets. One thing to look out for is not overusing the Megascans models, as they are only meant to support the scene and not be the main focus. I added a wall and a painting frame in the background to give the scene a more grounded feeling as if the diorama is actually in an apartment or a house. The book, a walnut, and dry plants are common elements in still life.
One little tip for working on the composition in Unreal is to set up your camera angle as early as possible, so you can assemble the scene based only on what can be seen instead of working on unnoticeable details. Also, I chose for this project the 4:3 aspect ratio for the diorama beauty shots to give it a more vintage feeling.
The lighting is quite simple. I used the Light Mixer to add Skylight, Directional Light, Volumetric Cloud, and Sky Atmosphere. With this setup, I only needed to change the direction of the sun then the lighting would be updated accordingly. For the studio lighting setup, I only used Directional Light and the Studio Tomoco HDRI in Skylight. One mistake that I used to make was overcomplicating my scene with different sorts of lights. It made my scene very confusing to work on. This time, my key light was Directional Light and I focused on having it at a good angle and intensity. I adjusted Skylight intensity to control the overall brightness. And only if some places were still too dark, I added another light source to brighten them up. I also added Light Blockers to simulate the interior and a window. If you want to know more about lighting, there will be a video coming out on the Beyond Extent YouTube Channel regarding the topic. Salvador Sánchez, a Lighting Artist at Playground Games, will explain in the video how physical-based lighting works.
I like to use plants to cast interesting shadows on the composition.
After finishing lighting, I started adding more cameras for some close-up shots. The issue was that I wanted to add some fill lights for each shot without them being visible to others. If I only hid them and enabled them one by one for each render, they would still appear all at once in the end. To solve this issue, Brigitte Fuker, Junior Environment Artist at Playground Games, taught me to set up lights on different levels to separate them. First of all, you need to create a level in your content browser and drag it into the Level Tab. Then you can select the light, right-click on the level, and click “move selected actors to level”. If the streaming method is set to ”always loaded”, it will appear in the final render, whereas setting “blueprint” and disabling the level visibility hides it.
As for rendering, I followed the “Unreal to Davinci Resolve Workflow – ACES & sRGB” from William Faucher for a high-quality result:
I color-graded my diorama shots in DaVinci Resolve to fit my taste. For the beauty shots with studio lighting, I sharpened them a little bit and added an S-curve for more contrast in Affinity Photo. I like adding the film grain to images. It gives them more texture and a natural feeling.
Based on my experience, image that appears on your screen usually looks a little bit different than on other monitors or devices. I usually view the picture on my phone and check whether it looks good or not since a lot of people use their phones to look through ArtStation or Instagram.
Challenges & Lessons
I lost track of how much time I spent on finishing this piece because I’ve been working on it on and off after work since May 2023. Don’t feel bad if your project takes a long time to complete. That’s why I think picking an interesting project is important. This way, you have no problem coming back to it after taking some breaks.
I had some struggles with sculpting the wood because I was too focused on getting every single wood fiber to appear exactly like the references. I then realized that no one was going to criticize it if I only sculpted 3 fibers out of 4. It is more about that there are visible fibers because it is a rough wood. As long as the details are logical, it’s fine. Focusing on details is good, but don’t get lost in it. You should also focus on the big picture. And sometimes it is good to take a break from the project to come back later with a different viewpoint. From my experience, I always discovered something odd after taking a break.
Conclusion
For me, the most appealing props are the simplest but well-executed ones, especially if you just started learning 3D. You don’t have to create machinery with the most complex shapes (which is also cool, don’t get me wrong). A single wood chair that has a nice balance of wear and tear and a good presentation can be a very nice portfolio piece. I used to tell my students that instead of making a pistol and struggling with the shape and topology as a beginner, why not make a model of a trash can and make it look good? When it comes specifically to creating an asset in a realistic art style, subtlety is also important. Don’t make bumps and roughness too exaggerated, as it is often a beginner mistake.
Presentation is also crucial. You can have a nice-looking prop, but with poor presentation, it won’t be appealing. For example, instead of having the model float in the air with a dark background, try putting it on a wood floor. You can even add some small assets in the background and play with the depth of field to make them blurry. All these little things make the model more real and natural. The nice thing is you don’t even have to create something new for this. With Megascans, you can achieve a better presentation for free.
One more piece of advice I’d like to give to beginner artists is to try not to feel pressured by trends and force yourself to make something you don’t feel passionate about. If you create something with a lot of inspiration and emotion, people can tell.