Fu Shin Coffee Shop and Hotel

Environment Breakdown

JD Havenga


JD Havenga

Environment Artist


My name is JD Havenga and I am a 25-year-old Environment Artist currently living in South Africa.

I have a background as a Mechanical Engineer, with BEng and BEngHons degrees.

I started doing 3D art in August of 2019 with my initial aim being to get into animation, but after teaching myself the basics of modeling and texturing I soon realized that I have found my passion. I had always been an avid gamer but I never really stopped to think about how games were made, so I was pleasantly surprised at how much fun it was to participate in the process.

Further dabbling into 3D art then led me to learn about what it meant to be an “Environment Artist” and it was something that I knew would be a dream job for me, being able to live out my passion for building stuff while also working on awesome games.

Figuring out how to make environments and props for real-time render engines was my next challenge and I then decided to take some time to participate in a few CGMA courses, because I knew that I wanted to sharpen my skill by learning from actual industry professionals.

About the Project

The “Fu Shin Coffee Shop and Hotel” is the 2nd UE4 project that I have challenged myself with and I worked on it during my time taking CGMA’s “UE4 Modular Environments” course, taught by Clinton Crumpler.

The concept that I decided to work with was a piece created by Stuart Ng for the game “Sleeping Dogs”, but I knew that I wanted to create something moodier and with a warmer feel.


I had many goals when making this environment, like to get more comfortable with UE4andto improve my prop and material-creation skills, but my main overarching goal was to improve my visual storytelling skills with regards to using my environment to establish a mood, a setting, to indicate a passage of time and to show some of the histories of the environment.

I wanted to create something with a lot of character and history while keeping it a realistic, livable environment for everyday tasks to be performed in.

The color was also particularly important to establish the warm mood of the scene. I ended up going with an almost sickly color palette, with some colors that are quite desaturated and others that can draw the player or viewer’s attention.


I also wanted to improve my time management skills during this project, which is why I decided to make use of a Trello board to organize myself and schedule my tasks.


Gathering references for the project was a very important and yet fairly simple process. Since the game “Sleeping Dogs” takes place in Hong Kong, I first spent some time gathering references on the location of the environment, just to get a feel for it. I also took some screenshots of the environment in the actual game in order to get a better sense of the scale of the hallway.


Once I had identified some of the assets and materials that I would be creating, I also started to get references for those. I used PureRef to create the multiple reference boards that I ended up adding to throughout the entire length of the project. Sticking to references is crucial since it helps you to create detailed assets that have a lot of character while keeping them believable and authentic.



My first step after gathering the needed references was to get started with the blockout. I knew from the start that this was going to be an especially important step since it was during this stage that I had to determine the very basic dimensions or “footprint” of the modular pieces of the kit that I was going to create.

The two golden rules that I kept to when creating my modular meshes was to adhere to the grid since I knew that I was going to use the UE4 grid to snap my pieces together, and to keep in mind where I place the pivots of the meshes that I was creating


I imported the meshes into UE4 (after the initial testing in Maya)in order to experience the scale of the environment from the perspective of the player or viewer and then proceeded to iterate on the created modular meshes in order to solidify the basic sizes of them and the general size of my environment.

This meant that could effectively minimize the number of major changes that needed to be made while I was busy with the more creative aspects of the project, such as detail modeling and texturing.


It is really important to use this stage of a project to lay a good foundation since that will only make things easier further down the road.

Modeling and UV’s

The modeling tasks for this project were pretty simple. The majority of the assets had most of the modeling done in Maya, with some more intricate and unique details sculpted in ZBrush. Some of the assets, like the couch and the wood sign at the end of the hall, required some more work in ZBrush, but that all added to the fun.

One tip that I can give is to really stick to reference and to use the modeling phase to add authentic details where you can. I’m talking about stuff like missing screws, slight bends/twists in metal pieces and other slight imperfections that can really take your prop to the next level.

Another tip, and one that I probably come from my knowledge as a Mechanical Engineer, is to really think about how an object would be manufactured in real life, and then to add details corresponding to such manufacture, both in the modeling and texturing phase. Things like weld seams and other construction details really go a long way in making an object seem more believable.


The UV unwrapping process was also quite basic for most of the assets, and I optimized the process by combining certain assets with others on the same texture sheet. Another consideration was texel density. I used a texel density of about 6.82 px/cm, which basically means that I used a 2048 texture for every 3 meters of in-game space.

I also used some UV mirroring and butterflying techniques when unwrapping the modular pieces of my environment, in order for them to tile correctly without any visible seam. There is always the issue of the butterflying effect being visible (depending on the texture), but some UV manipulation and vertex painting can take care of that without too much effort. Jacob Norris has an awesome tutorial that goes over the UV unwrapping of modular pieces so that they tile properly.

Texturing and Material Authoring

All the asset texturing work was done in Substance Painter. Just like with the modeling, I made sure to make use of reference photos.

The interaction between different parts of a mesh, the interaction of the object and the environment and how an object was used by people were all things that I had to take into consideration when texturing the props in order to make sure that the props felt like they belonged in the environment in which I placed them.

I used the basic texturing approach of first giving the prop it’s base layer materials, and then adding other details on top. This could mean slight albedo variations, discoloration and hue shifts, roughness variations like smudges and leakage marks, height variations like dents and scratches, and other effects like edge wear

All the tiling materials I used in this environment were also authored by me in Substance Designer.

I had to take into consideration my usage of the material, which meant that my materials could not have details that would have made the tiling obvious, and the fact that I was going to make heavy use of vertex painting in order to create the grungy look that I was going for. My basic process was thus to create an initial “basic” version of each material and then to create 2 or 3 modified versions.

I then blended these textures in-engine using a vertex blend shader. It should also be mentioned that I iterated on these materials a lot over the course of this project, and I made many changes after the initial pass in order to get the look that I wanted.


I always try to start working on the tiling textures that I will use for a project as early as possible since they usually contribute quite a lot to the overall quality of the scene and starting early makes it possible to keep iterating on the material until you are satisfied with it


I also made use of hybrid textures. These are textures that contain both unique details and tiling parts on the same texture sheet. Careful planning is needed when making use of a hybrid texture sheet since you need to plan out which part of the sheet will contain the tiling trims and which part will contain the unique baked detail from the high-to-low poly process.

I used hybrid texture sheets for the props that were too large to unwrap uniquely but that still required unique details.


Working inside UE4

One of the techniques that I knew I wanted to teach myself during this project was to use an edge decals sheet in order to show detailed damage without needing to sculpt actual unique damage on multiple meshes. This technique allowed me to sculpt 5 different edge damage trims, and then to use those trims all over my environment, wherever I felt like some edge damage was needed. Leonardo Iezzi has an immensely helpful tutorial on how to make use of edge damage decals with includes a section on how to set them up in UE4.


Another trick that I utilized in UE4 was to control the emissive strength of the ceiling lights by using vertex painting.

This meant that I could tweak the emissive per instance of the ceiling light mesh to a degree where I could make select bulbs dimmer. This contributed to the hallway feeling old and somewhat derelict, as some of the ceiling lights would then only have 1 of the 2 bulbs working.



Lighting can be the thing that makes the difference between a good environment and a great environment. The two main things that I tried to achieve with my lighting work this project was to create the desired mood and to use the lighting to aid in the composition by creating focal points that will draw the player/viewers eye.


Images in order:

Early lighting setup

Final lighting setup


I ended up using only rectangle lights and spotlights in the scene, so no skylight.

The fun really started when I was done with placing the rect lights (which utilized IES profiles) in the appropriate positions to simulate the light coming from the ceiling lights because then the objective was to use spotlights to“paint” with the light in such a way that some parts of the environment were highlighted while still having the lighting feel realistic and authentic. As you can see from the screenshots below, it really helped to solidify the mood of the scene.


The final scene with and without spotlights below.


This project was a real blast to work on, and I am happy to say that I learned quite a bit! One tip that I would give to anyone interested in 3D environments, and one that I myself still need to implement more in my process, is to ask for more feedback, not just near the end of a project but through every step of the process. It’s easy to become stuck and to lose motivation because you cannot see a solution to a particular problem but asking other artists for feedback really helps!

I hope that this small breakdown was interesting and that you, as the reader, learned something! For any questions, feel free to contact me via my ArtStation page.

Here’s a link to a little cinematic I made of this environment.


Final Renders