Simin Farrokh Ahmadi has shared the breakdown of the Persian Afternoon project, explaining the modeling, texturing and lighting processes in Maya and Mari.
My name is Simin Farrokh Ahmadi, and people call me Simba! I realized I loved art and creativity in my teenage years, when I decided to study Graphic Design at an Art Conservatory in Tehran for my high-school. Then, I pursued my passion for spatial design, got my BSc in Interior Design and followed by almost a decade of design and archives in Iran and the UAE.
My career took an exciting turn when I was invited to work as a Set Design Manager in a couple of feature films, and this experience introduced me to the world of multimedia. Motivated by my newfound interest, I pursued a Master's Degree in Animation and began producing award-winning short films, including Light Sight directed by Seyed M. Tabatabaei. After moving to Montreal, I got involved in content creation for Extended Reality in the world and also UX design. However, something was missing from my life – the joy of creating visually stunning assets and environments, specifically for games.
From a young age, I would spend nearly every day playing games or immerse myself in game walkthroughs, captivated by the intricate details, thinking of the creative process behind their fascinating visuals. Finally, I took the leap, leaving my job behind, and started exploring Blender and Procreate as tools for my artistic endeavors. After a few months, in January 2023, a life-changing event happened when I received Warner Bros. Discovery Access Canada Doers and Dreamers Digital Art Scholarship, and I’m currently enrolled in CG Asset Creation for Games; Props & Environment in Think Tank Training Centre, taking a significant step towards realizing my dreams.
Sources of Inspiration
As an Iranian artist, I always wanted to contribute to my Persian roots and culture. Even before enrolling in the TTTC courses, I actively sought inspiration from Persian art and architecture. One particular piece that deeply resonated with me was Persian Afternoon, an exquisite oil on canvas painting by Manouchehr Malekshahi that captivated me by its mood the moment I saw it.
For me, it embodied a profound sense of Persian nostalgia; the intricate patterns of the rug, the classic chair, and the presence of the tar instrument transported me to a different time and place. I could almost hear the melodic notes being played, accompanied by the sounds of a Persian family engaging in lively conversations about their daily lives. The painting was truly mesmerizing, and although I knew I would face numerous challenges in recreating it, I eagerly embraced the opportunity. I had a little over 4 weeks to finish this project, so the process of scheduling and collecting reference images for modeling the objects and creating the materials began! I love using PureRef to see all my visual references on a single board.
I did modeling in Maya. The initial and crucial step was to align my camera in Maya to match the perspective of the reference image. You can see the camera view and the perspective view here. The supposed floor perspective of the image and the floor grid in Maya should accurately align.
Try putting a couple of cubes in different spots of the camera view workspace to align them with some objects in the scene. It's worth taking your time on this step, otherwise you might face a lot of potential issues in perspective alignments going forward. I used the same method for modeling the tar in a separate Maya file. Having three views of the same object is the best way to approach modeling objects.
To create the short strings on the fingerboard, I used some of the edge loops from the board itself, and tried “Modify/Convert/Polygon Edges to Curve”. Longer string tie knots are helix meshes.
The most demanding part of the modeling for me was replicating the floral woodwork on the armchair. To achieve this, I primarily relied on drawing EP Curves, and using the Attach Brush to Curve tool while playing with the Pressure Mappings parameters. This way I could fine-tune the shape and width of the curves as needed. To optimize my workflow, I made a few main curved shapes, and tried adjusting these initial shapes to generate a variety of silhouettes. This approach allowed me to explore efficiently different forms without starting from scratch each time.
Global scale shows the widest part of your curve. Also, in Pressure Scale, remember to put Pressure Map 1 to Scale. Once you’re satisfied with the curve shape, go to “Modify/Convert/Paint Effects to Polygon”, and then apply a temporary Lambert so you can see your mesh properly!
I used MASH with a Curve Node to distribute buttons around the woodwork. The rug is a rectangular plane with around 15 subdivisions in width and height. During the modeling phase, I tried pulling and pushing vertices to achieve the rough shape resembling the reference image. To add the tassels, I used XGen within Maya. After converting the XGen Primitives to Polygons, I used Lattice to modify hair strands and shape them as I wanted. I then created a knot shape with the same method as the woodwork. Here is how the tassels look before and after implementing these modifications.
To get the thickness effect on the lenses of the glasses and to emphasize the distorted image of the paper behind them, I exaggerated the convex shape.
I made the entire scene of quad faces, which required some puzzle-solving to avoid Ngons and triangles. However, this challenge added a fun element to the blocking phase. During the polishing stage, I focused on enhancing the meshes by adding support edge loops where needed. This is the final wireframe at the end of the modeling phase.
Prior to sculpting and texturing stages, I needed to start the UV unwrapping process. I used Planar, Camera Based, Spherical and Automatic projection to create the UVs for different objects within the scene. To maintain the consistency, I used “Get Texel Density” from the wall/ floor and the rug as the largest objects for “Setting the Texel density” for the remaining objects. Here’s a quick look at my UV unwrapping:
To facilitate the unwrapping process, I utilized various tools within the UV Toolkit, such as Layout, Distribute, Stitch Together, and Unfold. This is the final result after UV Unwrapping was done.
To introduce wrinkles to the armchair cushions and to refine the rug, I imported the meshes as OBJ into Mudbox. I used Wax, Grab, Smooth, and also Wrinkle Stamp in the Sculpt Tool to make the meshes look more realistic. You can export your camera from Maya as an FBX file and import it in Mudbox to have the same camera view you have in Maya. Just Right Click on the exported camera in Mudbox and click on Look through. Make sure to lock the camera itself, its Pan, Zoom, and Rotate.
Once the sculpting phase was completed, I experimented with the V-Ray Displacement Map to transfer the data onto the low poly meshes in Maya. Add Subdivision, Displacement control, and Subdivision & Displacement Quality in V-Ray Attributes and remember to add Texture Input Gamma and Allow Negative Color with a Linear Color Space in Extra V-Ray Attributes for a 32-Bit FP map. Here is a comparison before and after the sculpting process:
The texturing phase was done in Mari and Photoshop. Starting with the armchair, I focused on texturing the fabric and wooden components. For the fabric, I created a star shape to distribute throughout a single tile in Photoshop and added a color layer and a fabric texture layer set to a lower opacity. I ensured that it was tileable, allowing for seamless repetition. Next, I imported the OBJ file of the armchair to Mari and created a Tiled layer with a Cloud Procedural Fractal node as a mask to incorporate a subtle layer of dirt onto the fabric, enhancing its realism while adding depth.
The wood was created as a shader in Maya with V-Ray. To add the falloff effect to the shininess of the wood, I added Ramp and Sampler Info nodes connected to the Reflection Color channel.
During the texturing process of the rug, I experimented with three different methods:
- Projecting the pattern through the camera in Maya.
- Projecting the pattern through a camera in Mari.
- Creating the pattern as a patchwork in Photoshop.
I found the Photoshop method to be the most effective for this particular project, as it gave me full control over matching the patterns with the original image, and easier adjustment of the colors to get closer to the essence and mood of the reference rug.
I then added a fuzz texture in Bump & Normal Mappings while adding Texture Input Gamma in V-Ray Attributes and setting the Color Space to Linear in the V-Ray shader. These adjustments ensured optimal rendering results and a more realistic representation of the rug's appearance.
The textures for the wall and floor were designed in Photoshop. To achieve a smooth transition and fading effect between the wall and the floor, I utilized the V-Ray Blend Material in Maya. Within the Blend Material, I incorporated a Ramp with a Gradient Mask. This mask allowed me to fade and blend the textures of the wall and floor together.
To texture the tar, I used Mari as my primary tool. For the wooden part, I used a Triplanar Projection to fade the seam line of the wood. Additionally, I incorporated a dirt layer and also a mask stack for the upper beige section of the tar. For the skin parts, I introduced smudges to represent fingerprints. As well, I adjusted the Refraction amount within the V-Ray shader to achieve the desired level of transparency. A SubSurface Scattering material was used for the tar's bridge, by applying a VRayFastSSS2.
To create the desired glass effect for the glasses, I implemented a straightforward glass shader setup with the IOR value set to 3.0, which accounted for the thickness and distortion of the glass material. For the metal parts of the glasses, I disabled the Fresnel effect, so it resulted in a more consistent and uniform reflection on the metal surfaces. I then adjusted the Reflection Amount and Glossiness parameters to fine-tune the reflection intensity and smoothness.
To create the realistic appearance of the paper material for note sheets, I employed the V-Ray 2 Sided Material or VrayMtl2Sided. This material allows for a more accurate representation of the opacity and translucency of paper when exposed to the light. I played with the Translucency Tex feature within the material settings to get the opaque feeling of the paper. Notably, if you don't have separate textures for the front and the back, the front texture will be considered for both sides. For more details, refer to the Document provided by Chaos about V-Ray 2 Sided Material.
During the lighting phase, a non-linear workflow was employed as the lighting had an impact on the colors and texture details. This was a back-and-forth process involving Mari, Photoshop, and Maya to achieve the desired outcome.
I used 26 VRayLightRects to both create the same atmosphere as the reference image, and also highlight specific areas. I used different temperatures and/ or light colors to get the effect I was looking for. You can see that I also strategically placed a few objects to either block or spread the light in some areas without adding extra light sources. Having the V-Ray RT enabled on a viewport during the lighting adjustments was helpful, as it allowed for real-time feedback on the effects of the lights.
To have more flexibility during the post-production phase, I exported a few Render Elements, including Denoiser, two passes of Ambient Occlusion using VRayDirt with varying Falloff and Radius settings on VRayExtraTex, Diffuse, Object ID, Specular, Normals and Glare. The final touches to enhance the exposure, local contrasts etc. were done in Photoshop while playing with opacity and different blending modes including Screen, Multiply, Overlay, etc.
I think the first step in enhancing your artistic eye is to expose yourself to high-quality artworks, so you can develop a better understanding of what makes a piece visually pleasing. I believe that one crucial aspect of creating impressive props and environments is mastering the art of lighting. Good lighting can significantly enhance the overall appearance of your work.
Of course, there is always room for improvement, so it’s good to keep track of your progress, because you are achieving so much in each project without even noticing it immediately. Devoting long hours of practice every day, watching tutorials, seeking solutions to challenges independently, maintaining consistency and not being afraid of challenges are some of the main factors that help you make progress in a relatively shorter timeframe.
I would like to express my appreciation to Warner Bros. Discovery Access Canada and the Think Tank Training Centre family for giving me the invaluable opportunity to redefine my DNA as an artist.
I am immensely grateful to my exceptional supervisor Derrick Sesson for all his help and constructive feedback, Seyed M. Tabatabaei for his unconditional love and support, and my course instructors Adar Bronstein, Matthew Novak, Joe Crawford, Renato Eiras, Arianna Mao, and Chad Fox.