Art test for Sperasoft - breakdown
I had a blast doing this art test for Sperasoft and I'd like to recap the lessons I learned throughout the journey by writing down this breakdown.
The company was kind enough to let me decide the deadline for the art test and I decided to finish this project within 1 week.
My assignment was to finish the facade of the building based on the reference image.
Thanks to Google lens, I was able to quickly find the source of the reference, which's from Sketchfab: https://sketchfab.com/models/a0062c9300874dd4a683a9a39090bd71/embed
This immensely helped with my modeling process.
Planning and Scheduling
This is my first time doing an art test and to be honest, I panicked at the beginning. This is not following a tutorial where you only have to do exactly as instructions say. You have to decide what pipeline to use, what tasks needed to do, where to gather resources and stuff, which can feel overwhelming without planning, so I divided my tasks by day, from D1 to D8.
Not only did this help me figure out what to do but also help me recap what I’ve done, making it easier to clear my thoughts.
Of course I kept adjusting it during the process whenever I had any new ideas or received feedback.
Module Analysis
This stage is essential as it influences how you would approach asset creation later on. Think of it as kitbashing, what kits needed to build the facade? And then I did a paintover and made an asset list for myself. How I decided the group is quite simple: things made with similar material or put together close would be assigned to the same group.
Blockout
I jumped into Maya to model proxy models of modular kits. During this stage I only cared about scaling and proportion. To make the later process of building with modular kits in UE easier, I kept the dimensions of the models snapping on the grid/vertices.
Material Planning
Before modeling kits I wasn’t fully sure about the material assignment but when I put a 200x200 cm plane next to my proxy models I could observe how much texel density I should allocate for models based on their actual scale.
For the largest surface on the facade, I supposed tileable textures can better support the texture resolution it needs so I didn’t include it into the trim sheet. As for bricks, I thought the silhouette would become crucial as they’re at the corner of the subject. Therefore I decided to sculpt them. I also noticed the highly repetitive patterns happening in the bricks so I thought RGBA masks with tileable texture should do the trick. The door piece is quite big and there’s not enough texel density left for it in the trim sheet so I textured it as a standalone prop. For the rest modules, I figured that applying a trim sheet for them is enough since they're less sizable.
Asset Creation
Sculpting
I imported brick proxy models into Zbrush for sculpting. Given that I have to bake high poly details later on I kept them separate from each other with distance.
One trick I find quite useful is that you can mask the area and invert the mask and then move it back, this can create a very interesting shape around the edge like the image below.
When sculpting hard objects like bricks or stones I like to use these brushes:
I particularly like using square alpha with TrimSmoothBord to sculpt hard edges;
MalletFast is very useful to sculpt chipped effect;
Move brush to make silhouette less straight, more organic;
create rocklike surface details with ClayBuildup and OrbFlatten.
All brushes except OrbFlatten are included in Zbrush by default. OrbFlatten is also free for downloading.
A lot of sculpting tips I implemented in this project are from the video
RGBA Masks
All of the sculpting and baking effort finally paid off during this stage. With the mesh maps I baked from high poly, I was able to apply smart masks in Substance Painter and see a decent look very quickly. On top of that, I played around with different grunge maps and hand painted on the mask to achieve the desired result.
To export the masks into UE, I used the custom template in SP I had created earlier to save a lot of time.
Trim sheet
I only had 8 days to finish the whole project so I downloaded textures from Quixel and Poly Haven to speed up the workflow of trimsheet creation.
Recommended by LinkedIn
The overview of process was:
Sculpting the concretes in Zbrush and modeling the trim in Maya > Texturing in Substance Painter > Blending with downloaded materials in Substance Designer
The key step is to assign materials with different colors to high poly models. And SP can bake IDs based on it.
In Designer, I primarily used nodes like Material Blend, Material Transform, and Material Crop. Note that Material Blend needs a Grayscale mask to properly function.
Door
To sell the realism, I didn't use decals for the posters. I modeled them with corners slightly scrolled to add more sense of volume.
To speed up the texturing process, I used smart material I had bought and modified it with smart masks and newly added custom sticker feature and I was quite happy with the result.
Decals
I imported downloaded materials from Quixel and modified them in Substance Designer. I basically only created masks. I found that Shadows can help me generate shadows around the mask edge.
World Building
Shader setup
I mainly used these techniques when setting up shaders.
There’re many ways to blend objects with ground, I chose to approach with Pixel Depth Offset as it’s relatively cheap and less complicated to set up.
Prefabs
I created prefabs when assembling bricks using Packed Level Actors as this allows more flexibility to adjust in UE, saving a whole lot of trouble import and export back and forth between Maya and UE.
It can be tricky to set up the pivot of your PLA and you can put a cube near your actors and then attach your actors to the cube, put the cube to world origin, delete the cube and the pivot will be in the right position. If you feel it's a bit abstract with text you can also check the short video I recorded.
Lighting/Mood setup
To create a vibe of cloudy and foggy day I tweaked parameters in Skyatmosphere, with exponential height fog, local height fog, and fog cards.
Final: Polishing and Presentation
To elevate the visual even further, I post processed the final render in Photoshop.
Here’s a video introducing a lot of post-process tips in PS.
These tips might look easy but it can effectively enhance the presentation.
Conclusion
Although I made mistakes like not leveraging RGBA masks for roughness and normal channels, stuck at the planning stage for too long, I gained valuable experiences throughout the test. Shoutout to Robert Berrier for his feedback that I should prioritize artistry over the technical aspect. During the test, I did not set up the mood at the early stage and wasted too much time tweaking unnecessary functions in shaders. It was the feedback repivoting me back to the things I should focus on. Given the experience and takeaway I learned, I hope this can help. I’m also open to feedback so feel free to share your thoughts!
I am assuming, this artest for environment artist positions. It is important to constantly remember what role an artist is hired for. For example, if the position is Junior Environment Artist, the priority should be on environment art, priority how to make assets and scenes look realistic, model, albedo, roughness and etc and visually convincing. Shader development, however, is typically the responsibility of a Technical Artist. From what I read, around 50% of the articles focus on quite technical topics. In a standard production studio, that area is usually not handled by an Environment Artist. However, if you are applying for a Technical Artist position, then those points would be very relevant.
Love the way that you present the breakdown
Nice work! your fundamentals are spot on.
thank you for sharing 😊
this is very interesting to read, thanks !