Daniil Voronin shared his texturing technique in the Barrel project and showed a method for correcting artifacts after baking.
Introduction
Hello everyone! My name is Daniil, but I'm known online as BlueOxel. I've been working professionally as a 3D artist for two years, and today I want to share my experience working on The Barrel project.
My journey into the gaming industry began while studying at the law university when I created my first small game project and made my first 3D models. Then the pandemic started, and I studied 3D modeling more actively, focusing on working with Blender.
Later, I was very fortunate, and on the day I defended my thesis, I received my first contract to create 3D models for a game project. After that, I worked on several projects under contract and eventually secured a full-time job. However, I wanted to continue growing, so I decided to further my education in 3D to bring my skills up to the level of modern production standards.
I was incredibly lucky to meet the amazing artist Alexey Ivanchenko, who gave me valuable advice, patiently pointed out my mistakes, and explained how to fix them. I am very grateful to him for that.
The Barrel Project
It all started with defining the overall goals of the project and gathering references. The project was meant to accomplish several personal objectives, but the main one was to elevate my skills to a new level.
Finding an asset that met my requirements didn’t take long. I chose an antique barrel with an amazing shape and detail. I also decided to combine several references of different barrels for variety and make some adjustments to the original design. I highly recommend keeping your PureRef file organized during such moments; otherwise, it can quickly turn into chaos.
I want to warn artists against the mistake of overscoping their projects. I deliberately chose a simple antique barrel because, in the early stages, it's important to work on small projects but execute them to a high standard. This is a very common mistake among beginners, which often leads to them not completing their projects.
Blockout & High Poly
It all started with a simple blockout of the barrel based on dimensions and references. Initially, the work was done according to the original barrel's measurements, but as the process progressed, some changes were made, and the appearance of certain elements was revised.
During the creation of the high-poly model in ZBrush, I also modified some elements of the silhouette. Before finalizing the high-poly model, I made edits without any pressure, changing individual parts as needed. Additionally, I did some minor sculpting on the boards: I added unique details to each one, detailed the front edges of the boards near the front cap of the barrel, and created several deep scratches on the wood.
I didn't dive too deeply into sculpting to maintain flexibility during the wood texturing phase in Substance 3D Painter. This was part of my original plan for the project, as I wanted to focus more on the texturing stage. I approached the metallic elements with a similar logic: I added detail to all parts but kept it moderate to preserve more flexibility during the texturing process.
Low Poly & UV
The low-poly model was created based on the blockout for ZBrush. I optimized the mesh in areas where it wouldn’t affect the appearance, even though there was no polygon budget.
Below are the parts of the model that I designated in advance as overlaps. Several boards were duplicated, mirrored, and rotated 180 degrees. This allowed me to save space on the UV map while ensuring that the lower parts don’t visually repeat.
If you’re curious about what the menu in the video above is, it’s Machin3Tools.
The UV unwrapping was done using a combination of Blender's tools and RizomUV. I try to leverage the strengths of both programs, as each one complements aspects that the other can't fully address.
I used the following add-ons for Blender:
- TexTool: I have a bit of a background with Maya and 3ds Max, so I use this add-on quite often for UV unwrapping. It has many amazing features, but I don't utilize all of them.
- UV Packmaster 3: An add-on that every Blender user should have. It's probably the best UV packing tool available right now.
- RizomUV Bridge: A small but useful add-on that allows for a very quick transfer of models between Blender and RizomUV.
Since the project was created for publication on ArtStation, the focus was on using 4K textures for the renders. However, the model looks great even with 2K resolution textures.
There wasn't a specific texel density set for the project, but close-up shots were initially planned for rendering the asset, which is why some UV islands were scaled up.
I also conducted a small analysis of the rendered scenes. In this case, the main part of the barrel (excluding the ends) will occupy approximately 2660px and still look good. In one of the renders below, I achieved roughly that result. In this render, the boards occupy 2560px.
This way, you can calculate the number of texels and adjust them to match the pixel count on-screen during close-up renders.
Bake
The initial bake results contained minor errors due to the rings being bent. As a result, I had to redo the high-poly and low-poly models of these rings in an unbent state before proceeding with the baking. Only after the final bake were all the rings bent again, this approach allowed me to resolve all the issues that had arisen earlier.
Some artifacts proved difficult to fix, so I want to share a simple yet effective method for correcting them in Photoshop. This way, you can make adjustments across multiple maps simultaneously. I used the Liquify filter. This filter allows you to make changes to key bake maps such as curvature, normal, and AO, and then, by using the "Repeat Last Filter" function, apply the same adjustments to all the maps you’re working with. I hope you find this tip useful for your future projects.
Texturing
This is a very complex stage filled with experimental solutions.
Since we weren't tied to any specific project and didn't have the option to use a pre-existing wood material, we chose Quixel Megascans. We tested a vast number of materials since the barrel is small, and most materials are designed for objects of different scales. However, after several iterations, we managed to create an excellent base for the base color, roughness, and normal maps.
After that, additional layers were created to enhance the wood detail and add extra information across all channels.
Multiple anchors were used to achieve more flexible detailing on the barrel. I highly recommend that those who aren't already using anchors reconsider their approach to them – this is truly a "game-changing" feature in Substance 3D Painter. I hope that in the future, the development team will add a search bar to the anchor's menu, as I missed it while working on the project.
I want to emphasize the detailing I achieved using the height channel. I prepared the groundwork in advance, which allowed me to experiment with different methods of creating cracks in the wood. However, a fully procedural approach wasn’t used in the process. I wanted to control where specific details would appear on the wood, so many of the masks were drawn manually.
Below, I want to demonstrate the analysis of the "leak" and "sculpt" folders. Both folders operate on the same principle – interaction with a manually created mask.
The process of creating the sculpt turned out to be very simple. As seen in the video, I just draw a mask, and then, using anchors, filters, and level adjustments, I get the final result.
This approach also allows me to modify the final result as I wish.
The logic of creating gradients in the case of leaks is similar to the previous approach; however, this time, more work was done with the mask. The task was to fit several color gradients into a single mask. At the end of the video, I toggle the layers on and off, which allows for creating such a complex gradient.
I also want to showcase one of the dirt generators that was created in the project.
I would also like to note that in some generator parameters, micro height and micro normal were used as "anchor points" from wood material. This allowed me to preserve the original wood pattern during further work.
Below is an example demonstrating the use of these anchors on the mask of one of the generators.
I highly recommend creating a layer that I called B&W. This layer allows you to check whether your normal map intensity is adequate in the end. This was important for me because I wanted to maintain a certain hierarchy in intensity, ensuring that small chips weren’t deeper than the cracks in the wood.
Below, I will show you how to do this:
While working on the Base Color, I highly recommend checking your model using HSL with saturation set to 0. This allows you to see how well your tonal values read while working on the color.
There’s also another way to do this – by enabling the light filter in the Windows settings, which can also be configured to hotkeys. I learned this method from the amazing artist EMC3D in one of his videos.
And finally, a friendly but not obligatory recommendation: occasionally use PBR Validate on your model with the settings shown here. This will help eliminate some visual artifacts during the workflow.
You can find more detailed information in this video by amazing artist Sergei Panin.
Rendering
I started creating the first scene sketches while texturing. It's very important to check the textures in the target render or engine at early stages to identify potential issues. In my project, I used Marmoset Toolbag 4.
For better clarity, I divided my renders into two types: those that attract the viewer's attention and studio renders for showcasing the technical aspects of the textures without distortion.
Below, I provided a lighting breakdown of two renders.
This is the main eye-catching render. The goal here was to create a simply beautiful and clickable render.
Separated light sources
Layering light
The studio render below was created using a standard setup of three light sources and an HDRI. Almost all the other renders were done using the same setup.
In most cases, I used the default Marmoset settings, but I switched the Tone Mapping to the ACES profile. If you’re not quite sure how this is useful, I recommend reading this article.
During the post-processing stage, I applied Camera Raw in Photoshop for light adjustments to the renders. While the built-in tools in Marmoset are sufficient, I still believe that a bit of post-processing on other software can make the results more appealing.
Below are the renders before and after applying all the post-processing adjustments.
I tried not to make significant changes to my renders in Photoshop, so I limited myself to minimal adjustments. It's important to preserve the original appearance of the work when showcasing a game asset. At the same time, I aimed to use a non-destructive approach: I saved Camera Raw presets and all layers in the PSD file. This allowed me to create a flexible pipeline that simplifies the process of replacing renders if errors are discovered or if any revisions are needed.
Conclusion
Thanks to this project, I achieved many of my set goals. Comparing it to my previous experience, I can see significant growth in all of my skills. Below are my works created before The Barrel project.
I am dedicated to pushing beyond my current level, striving relentlessly to enhance and elevate my skills to new heights
Here are the key takeaways from the article:
- Allocate enough time for reference gathering and planning: You will benefit greatly if you find quality materials early on and understand the goals you want to achieve in your new project.
- Don’t overscope your projects: start small and try not to stray far from the initial task.
- Maintain flexibility and organization during asset development.
- Check your textures in Substance 3D Painter: use the methods I mentioned earlier.
- Don’t rush: In these challenging times for artists, it’s essential to focus on the quality of your work and pour your heart into what you do.
In conclusion, I would like to share a piece of wisdom from someone I respect. This was an answer to my question, "What advice would you give your younger self?"
All the great achievements you observe – be it games, inventions, or technologies – are created by ordinary people just like you. They are not smarter or more talented than you. Often, those who succeed start under less than favorable conditions. Their main secret is that they did not give up and kept moving forward despite any difficulties. Many people give up on the path to success, especially when they see others who seem smarter, more talented, or more successful. But that is a mistake. Other people are not smarter or more talented than you.
Talent is, in fact, overrated. Persistence, in my opinion, is undervalued.
I want to express my deep gratitude to everyone who supported me throughout this project. Your support has been invaluable.
And, of course, thank you, dear reader, for sticking with this article until the end. I hope you learned something new.