Professional Services
Order outsourcing

Sunny Market Entrance: Creating Stylized Materials with Substance

Jasmin Habezai-Fekri did a breakdown of her latest stylized environment Sunny Market Entrance made with Blender, Substance Suite, and ZBrush.

Life Updates

In the past year, I moved to Canada for 6 months and completed my internship at Square Enix in Montréal as a 3D Environment Artist. It was my first experience working at a studio since I’ve been freelancing from Germany before that. I feel very fortunate to have had the opportunity to meet and work with a lot of inspiring artists in the industry during my time there. It made me even more excited about my future after university.

In my free time, I also have been participating in the Sketchfab Masters Program, where I co-organized and run the Women on Sketchfab blog series. We focus on highlighting 3D works of female artists and encourage them to share their career paths, experiences, and advice with the rest of the 3D Art community. Another little highlight of mine has been participating in The Legend of King Arthur Artstation Challenge, in which I got the 1st place in the Prop Art Category. You can read about my experience during the challenge here. I was also very excited to win the Google WTM Gaming Scholarship, which will support me during my university studies. Overall, the past year has been full of new opportunities and experiences for me.

When I returned home from Canada in February, I wanted to focus my remaining time at university on learning new skills and part-time freelancing on the side. Since working from home is very natural to me and something I have been practicing since 2017, I didn’t feel constrained by the lockdown. I basically have been in quarantine since February. Nonetheless, being bound to your home and occasional grocery store trips for several months can be tough, even for someone like me who enjoys staying indoors. What helps me is to stay active by going to local forests or parks (during the week to avoid crowds) or try new recipes like making Kimchi from scratch. 

Back in Canada, I already set my goals for the coming year and was very motivated to tackle my weaknesses and get outside of my comfort zone of hand-painted models. I was wondering if I could bring my affinity for painterly environments into a PBR workflow too. Due to not working full-time yet, I have the opportunity to learn new skill sets at my own pace. Here it was important to create little milestones and not get overwhelmed by the sheer amount of new things that are there to learn. I tried my best to take everything step by step and not worry too much about how I am going to tackle every single aspect of a project before I got to that point. 

1 of 4

Sunny Market Entrance: Inspiration

Whenever I want to start a new project, I always try to choose an environment or visual theme that I haven’t explored in my previous works yet. I thrive from a good challenge. Once I stumbled upon Hyunsu Cha’s beautiful Market Entrance, I was instantly drawn to the timber framing architecture. The concept made me want to experience this place, which inspired me to make it come to life. Growing up in Germany, I am very familiar with these types of buildings (and I actually live inside one!). I always have been fascinated by the whimsical aura they emit. The building itself offered a great opportunity to create a modular set and the market props a wide range of assets to produce. The whole feel of the concept also reminded me heavily of Ghibli movies, especially Market Chipping in Howl’s Moving Castle.

Sooner than later, I asked Hyunsu Cha if I could recreate this concept in 3D. With the artist's blessing, I started planning out what I needed to tackle to get this project started and put together the main goals I wanted to achieve:

  • Get more comfortable with Substance Designer & Painter
  • Go for a full PBR approach but keep it stylized and painterly, reminiscent of Ghibli movies but with an Overwatch flair
  • Build complex building structures with modularity in mind
  • Produce numerous assets while keeping consistency 
  • Give the market concept my own touch in terms of style and mood

Creating Materials in Substance Suite

In the past, I only used Substance Painter for occasional baking or university projects. I didn’t spend much time with it due to using Blender for my texturing process. 

To get started, I began planning what materials I needed to create with Substance Designer. What I learned from previous projects with architectural pieces: it’s easier for me to create a basic set of textures first with which I can start building parts of the structure. From there, I can iterate easier and realize what textures need improvement or simply do not work being used repeatedly on a big scale.

The first materials I decided to tackle were plaster, beige bricks, roof tiles, and wood. I was used to creating tiling textures inside Photoshop or ZBrush, however seeing how Substance Designer handles it amazed me. I realized how much easier it is to build tiling textures very effectively and quickly in a much less destructive way. Slowly but surely I got used to the Node-based workflow. I was very fortunate to receive a lot of help and tutoring from Ryan Pocock, who gave me great tips and tricks. 

Roof Tiles

My favorite and quickest texture to tackle was the Roof tiles. I started off with a Linear Gradient, Shortened, and tapered it to the desired shape. With Perlin Noise and the Slope Blur Node, I created the little stylized imperfection, of which I created 3 samples for variation. After putting them into a tile Sampler, I added another 2 samplers for color variations inside the Albedo and for keeping the cracks inside each roof tile. The cracks were created by using a Cells Node with Edge Detect and Slope Blur for more depth. To create more sharp and stylized cracks, I used a Directional Warp with the Crystals node plugged into the Intensity. 


Another fun texture was the plaster since I managed to merge my interest in hand-painting with Substance Designer! My main reference for this was the red plaster in Spirited Away. I wanted to give it a painted feeling while keeping the overall details to what is necessary since it’s the most used material besides wood.

I started by creating a simple base for the Plaster Material by picking a Grunge Map with a dripping paint look to it. By blending Fractal Sum Base and a Clouds texture into it, I got more noise into the texture and also lowered the contrast. I then blended it with another Grunge Map for additional variation and a simple rose-tinted gradient to add color. I also included “fake” brushstrokes which I generated by following Vincent Derozier’s breakdown of his Stylized Designer Materials.

Now that I had a good base, I started to paint on top of it. I lowered the contrast by evening out the values and emphasized the horizontal cracks inside the plaster to give it a more worn-out feel.

Going back into Designer, I put the painted Albedo into a Directional Warp with a Tile Generator plugged into its intensity. This warped the horizontal cracks I drew by hand vertically to create the illusion of dripping plaster/paint that dried up in the process of applying to the wall. To simplify and sharpen the added brush strokes, I used a Mosaic Color Node with Clouds. This Node really helped to get closer to the Ghibli-esque painting style with bigger shapes and less noisy textures. 


One of the bigger challenges was the Wood trims. For my first pass, I wanted to go for something not too distracting and was more focused on creating a painterly look for the wood. I applied similar approaches I went for with the other materials to it. I settled with it for the time being since I was inexperienced with the software and wanted to move onto other parts but deeper into the project, I realized that the wood is my least favorite part of the whole scene, especially when it’s used all across the market. At first, I thought about dropping Designer and sculpt the trims inside ZBrush since that’s what I usually would do. However, I was determined to improve my Designer skills and started to look for more references.

Since the PBR approach in Overwatch has always been very appealing to me, I looked at the Havana and Busan Maps. The green wood in those maps has just the right amount of detail without getting too noisy or distracting to look at. After getting some advice on how to approach such wood, I went back to my old Wood Material and tried to improve it. I kept the initial approach of using a diamond shape and tile generator to create the basic wood grains. What helped was blending them with a histogram scan of directional scratches to create the more worn off and less deep scratches of the wood beams. I also wanted the wood to look actually painted by revealing the natural wood color on the scratched parts. I still made use of the old wood albedo texture by slightly blending it into the base color to get some soft variations and a hint of the painterly feel into the green parts. Overall, this new approach made the wood a lot less noisy while giving it more depth and believability.  

Modular Architecture

Once I was through the first pass of my textures, I started modeling the modular pieces for the market building. The first thing I approached was the roof. I created one tile based on the texture I made inside Substance Designer and applied an array modifier on the X and Y axis, which I adjusted to the number of rows I needed for each roof of the market. To give the roof a less rigid and more organic look due to the weathering, I applied a lattice modifier, which had as many rows as the roof itself. With that, I sloped and tapered some parts while checking the result frequently inside the engine to make sure it worked with the overall silhouette of the building. In the end, I added some unique roof tiles to break up the rigidness of the rows and give the surface height variation without making use of a height map. This whole workflow was very non-destructive and gave me the opportunity to try out different sizes, angles, and variations of the roof. Blender is great at stacking various modifiers.

Modeling Wooden Beams

At first, I decided to make the wooden beams of the timber-framed parts inset, following the concept closely. After modeling all the pieces with that visual approach, I realized quickly that it didn’t look very appealing in 3D and was straying away from my goal to align the visual aesthetic with Overwatch. After researching more into timber-framed houses, I realized that it’s also very common to have wooden beams sticking out of the structure. I also looked at the Eichenwalde Map and really liked the chunkiness of the houses with the wooden beams. I scraped my old modular pieces and built a new system which made everything a lot easier in terms of usability too. For this, I created a set of wooden beams with a simple bevel on them. To get smooth normals, I modified the normals with the weighted normals modifier and put the smoothing on 180 degrees. I used them all across the building with additional versions for the long wooden beams around the oval-shaped building. 

Ornaments & Props

I was excited and to some extent intimidated to approach the ornaments in this piece, since it was my first time modeling a complex filigree shape. What helped was studying old baroque designs and stone carvings on buildings from around that time. I also remembered seeing a lot of metal signs in my hometown too which can be found on old timber-framed pubs or shops. Those signs would indicate the guild or occupation the shop inherited. I especially followed these references for the sewing and fruits shops. I also looked at the elaborate Ornament Kitbash Pack by Jonas Ronnegard to see how others tackle modularity with these ornaments since it didn’t seem very efficient to me to uniquely model every single part.

After some experimentation, I decided to use one of the baroque designs as a base to model the leaf shapes. I also interpreted the shape above the flower ornament as a shell, which was found very frequently on the top half of these designs to emphasize the “royal” feel. For the flower, I also tried to incorporate the circular shapes on the shell and leaf ornaments to keep them consistent. Once I had these shapes, I started to arrange them in a way that would make the golden flower nicely framed. I grabbed the same leaf arrangement and scaled it down (+ lowered the polycount) for the two little market shop signs. For the texturing, I used Substance Painter where I made a shiny, stylized gold material and an oxidized version of it. With the mask editor, I managed to create a slight oxidation effect on the gold parts, especially on the flower. The rest is painted in.

Fruit Stalls 

To keep track, I made a little list with all the vegetables, fruit, and miscellaneous plants I would need to create for the market shops and the overall vegetation of the environment. While I reused the previous wood material for the boxes inside and outside of the shops, I was excited to uniquely texture the food props. I first started by sculpting everything inside ZBrush keeping the high poly versions very clean with minimal sculpting involved. I only used Hpolish and the Orbs Cracks brushes to create the little cuts and imperfections on the vegetables and plants with a universal Clay Polish at the end. Once I textured everything inside Substance Painter, I started to assemble the bushes and little bouquets of flowers. For the vegetables, I reused the apple model I sculpted and created some color variations for the apples themselves. I realized with the assets being very small, no one would realize that they are the same model after all. What also helped was giving the vegetables and fruit a slight top-to-bottom gradient, so that it doesn’t become too apparent that the same mesh is re-used. Rotating everything slightly and giving it a feel of randomness gives everything a lot more believability. I actually started to look at the vegetable section at our supermarket more attentively to see how the fruits are arranged in the display baskets. Work smart, not hard! 


I rendered the scene inside Marmoset. It was very easy to iterate the lighting quickly and I started doing so from the start once I had some of the main structures modeled out. It’s important to check the model and the textures early on in the process in-engine since the lighting has a huge impact on them. Lighting can make or break an environment. At first, I wanted to achieve lighting similar to the concept but I realized quickly that the whole pastel-esque color palette of the concept wouldn’t work well with my desire to create a very colorful space with more contrast and differences in value. I moved away from the concept and looked for inspiration elsewhere. My main references here were the Havana and Busan Map in Overwatch again. The warm sunlight matched with the colorful architecture was exactly what I wanted to aim for.

The biggest breakthrough was achieved when I realized that I was relying on Global Illumination too much. It started to obscure the way the Ambient Occlusion was being generated, which resulted in the fact that a lot of the timber framing on the building did not have any AO around them. Once I turned off the GI and started building the lighting from scratch, I ended up with a much cleaner set up. From the start, I used one red-ish light to emulate the warm shadows and one directional light with a slight yellow tint. Those two lights were adjusted several times until I reached a balance between the two. I also added a custom Skybox, which showed a sunny day with a little overcast set on a lush field. After I decided to add a small background to make the lighting scenario more believable, I realized that the overall lighting was a lot darker than I thought. Having that natural background made it very apparent how dark the shadows were. Increasing the lighting of the Skybox and adding a very faint fog generator did the trick in the end. To add some highlights to specific parts of the market, I put several omni and spot lights around the window areas or the walls. 


My initial planning started back in January. Due to my internship at the time I didn’t spend any time on building the environment itself. I focused more on practicing Substance Designer for an hour or two after work and managed to create the roof tile material during that time. Once I got back home at the end of February, I started picking the project up again and worked on it part-time from late February until early May, which makes it roughly 8 weeks.

What was important to me with this project was taking my time to explore different styles and figure out what I wanted to achieve with it. Since I mostly created hand-painted environments before this one, I had to approach this a lot differently. Besides incorporating new software into my workflow, I also had to flesh out parts of the concepts like ornaments, vegetables, and the insides of the shops.

Towards the end of the project, I got a lot faster at tasks that were difficult for me during the first weeks. Through my new learnings, I also ended up re-doing and improving assets along the way until I reached a level of quality I was happy with. I think the next time I work on a project of this scale and in PBR, I will be a lot faster at creating it since most of the questions and roadblocks I faced with this one are resolved now. 

I hope this article gave some helpful insights. While it was one of the most challenging environment pieces I have worked on so far, it was also the most rewarding. I always enjoy creating spaces that I'd like to visit myself and I definitely would love to go to a market again in the future.

For any further questions, you can reach me through my social media channels:

Jasmin Habezai-Fekri, 3D Environment Artist

Interview conducted by Kirill Tokarev

Keep reading

Read our previous interview with Jasmin

Join discussion

Comments 1

  • Anonymous user

    Great break down! Thank you for sharing the process :)


    Anonymous user

    ·3 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more