FC Calculator
Introduction
I'm Luis Miguel Ribelles, a 3D Artist based in Valencia, Spain.
I specialise in creating props and environments for video games, and have experience working across both realistic and stylised art styles. I've worked in game studios and remote outsourcing teams, contributing to different stages of asset production.
Goals
I often browse ArtStation for interesting concepts by artists whose work catches my eye and that I’d like to bring into 3D. I came across IWSE Zhang’s calculator concept and was drawn to its hard-surface design and the storytelling behind the object.
After spending some time working on stylised projects, I wanted to return to realistic hard-surface work, practise my modelling and texturing skills, and create another portfolio piece.
My goal was to stay as close as possible to the original concept. I did skip a few minor details along the way, mostly to avoid overcomplicating the asset, but overall I tried to preserve the original design and its character.
Original concept: IWSE Zhang
Tools
- 3ds Max (blockout and modelling)
- ZBrush (high-poly modelling and detailing)
- Photoshop (alphas)
- RizomUV (UV unwrapping and packing)
- Marmoset Toolbag (baking, lighting and rendering)
- Adobe Substance 3D Painter (texturing)
References & Inspiration
Alongside the original concept, I gathered photographs of real calculators from sources like Google, Pinterest and eBay.
These references helped me understand how the object was constructed and find details that weren’t visible in the concept, allowing me to make more informed modelling decisions.
I also looked at 3D work by other artists to see how they approached similar objects and achieved their results. This gave me a chance to study different approaches and find inspiration for my own piece.
Blockout & Modelling
For the blockout, I aimed for a fairly detailed mid-poly model rather than a simple rough pass. I used booleans and cleaned up the resulting geometry, combining a mid-poly workflow with symmetry wherever possible.
I matched the proportions against my references and paid close attention to the cavities and separate components. I also prepared the meshes to work with subdivision, so I could export them to ZBrush without issues.
By keeping the final polycount and topology in mind from the beginning, I was able to develop the blockout into the final mid-poly asset without needing a separate retopology stage.
High Poly
For the high-poly, I used two main techniques. For the button areas, I used floaters to project the recessed shapes.
For the parts that didn’t need sculpted details, I relied on subdivision to achieve a clean, smooth result.
The second technique was to sculpt details taken from the references, mainly the cracks. I also sculpted some of the edges to add a bit of variation.
I paid close attention to these details and tried to match the cracks in the reference as closely as possible.
To create the tape, I duplicated the calculator and ran DynaMesh on it, combining the surface and the buttons into a single mesh.
I then masked the area where the tape would sit, assigned it to a polygroup and deleted the rest of the mesh. This left me with only the section I needed to sculpt the tape, while preserving the shape of the buttons underneath.
This gave me the basic shape of the tape while keeping the buttons underneath intact.
From there, I refined it by sculpting the folds and using fold brushes.
Mid Poly & UVs
As mentioned earlier, the blockout already worked well as an optimised mid-poly model, so I didn’t need to create a separate low-poly version.
I only had to add the tape and fix a few shading issues in 3ds Max using chamfers and weighted normals.
Since the model had many repeated parts, I was able to save UV space by stacking the UVs of identical elements, such as the chips.
RizomUV is my favourite tool for this stage.
I find UV unwrapping quick and intuitive, and its packing tools make it easy to use the available UV space efficiently.
Baking
I baked the model in Marmoset Toolbag using an exploded setup. This helped me avoid AO issues with the stacked UVs and prevented the tape from affecting the calculator underneath, as it was going to be translucent.
The downside was that the AO and cavity maps were baked separately for each piece, so they didn’t contain the information from the fully assembled model.
This meant some generators in Substance Painter wouldn’t work as expected, but I preferred this approach to avoid potential issues later on.
Texturing & Materials
Texturing is always my favourite part. After spending some time working on stylised projects, I wanted to bring some of that approach into a realistic asset, combining realistic materials with slightly exaggerated strokes and details.
My workflow started with the base colours, followed by the alphas I had prepared in Photoshop.
When studying the real-life references, I noticed that the calculator’s base had a fine grain texture, along with subtle colour and roughness variations.
I also found small holes around the number areas.
I followed the same approach for the rest of the parts, studying each material and trying to reproduce it in Substance Painter. Once the base colours and material variations were in place, I started adding dirt and scratches.
This is where I introduced some stylised touches: I exaggerated certain scratches and areas of dirt, added more colour variation, and emphasised occlusion in selected areas.
I used the following workflow:
I used grunge maps in Subtract mode to keep the dirt from looking uniform across the model, then refined the result with paint layers.
I used the Calligraphic brush for most of this work. For the cavities, I combined two or three layers: a soft grey layer, plus a greener, more opaque layer placed deeper inside the recesses.
This helped me add variation to both colour and roughness.
I used a similar approach for the scratches, adding colour along with subtle height and roughness variations to create the worn areas.
These layers also helped me reinforce the scratches baked from the high-poly, and I painted AO into them to give them more depth.
I followed the same workflow for the chips, but also painted them using the alphas I had created in Photoshop as stencils.
For the tape, I set the opacity to around 70% and added several layers to vary its opacity and roughness across the surface.
Some areas are more opaque and smoother, while others are rougher and more translucent. This variation is especially noticeable over the cavities.
Finally, I added screenshots from GTA 2 to the screens as a small nod to the hype around GTA 6.
Lighting & Rendering
For the final renders, I used the ‘Abandoned House Attic’ environment for the skylight and blurred the sky to introduce some subtle colour variation in the background.
I added rim lights to reinforce the silhouette and used a mix of cool and warm lighting on opposite sides.
I wanted the lighting to bring out the material details, especially the differences in roughness and height across the surface. I also placed a few additional lights to help emphasise these details.
I kept the setup fairly simple, using three or four additional lights alongside the skylight and rim lights.
Conclusion
I really enjoyed working on this asset because it gave me the chance to bring some of the knowledge I’ve gained from stylised projects into a realistic prop.
I also got to experiment with techniques I’ve been refining over time, which made the overall process smoother than I initially expected.
Thanks to GamesArtist for giving me the opportunity to share my process.
If you have any questions, feel free to reach me on ArtStation or LinkedIn.