Allen Vu talked about the work process behind the Cedar Forest project, explained how the textures of the foliage were done, and shared some tips for beginning artists.
Hey readers! My name is Allen Vu and I’m a 3D Environment and Material Artist. I was recently a graduate student studying for my doctorate and working in a hospital. When I was deciding what to do with my life, I let go of my dreams of going to art school and went down the healthcare route. Unsurprisingly, I wasn’t happy with anything I was doing at school. I was miserable and unfulfilled, I felt lost, but after a lot of encouragement from my friends and internal reflection, I decided to turn to game art.
At first, it started slowly. I would get home from work, study for my exams, and watch a few tutorials or read a couple of articles on the basics: modeling, texturing, and general skills. The more I learned, however, the more I wanted to make this daydream into a career. It only took a global pandemic to finally push me into the deep end. I uprooted my life and fully dedicated myself to game art. I took a couple of classes to get a better understanding of the basic workflows. My daydream was gaining momentum and soon I had enough courage to invest in a more advanced class that would help push my skills. I signed up for an environment building course on CGMA with Anthony Vacarro, and that was where I began the Cedar Forest level.
The Cedar Forest Project
The prompt for the class was simple: design an organic level in Unreal Engine 4. With such an open-ended assignment I had a lot on my plate, especially since this was going to be the first environment I designed. My main goal for the class was to finish with something I could present. I love primordial spaces and places untouched by people, so I wanted a woodland-type scene, something with a wild and overgrown look.
When it came to gathering references, I started with ideas of the plants I wanted to fill this biome with. I started with evergreen trees, eventually landing on cedars, and let my ideas snowball, figuring out what plants grew with them and what climate zones they lived in. I then started including rock types, lighting scenarios, and compositions in my searches. I was actively trying to cover all my bases in reference gathering while also building this environment in my head. I utilized the references I gathered throughout the entire process trying to figure out what details and pieces of each reference I wanted to utilize in my scene.
When the time came to start modeling assets for my scene, I took the rough elements that I used for blockout and started to sculpt them in higher detail using Maya and ZBrush. Since this project was meant for a class and I wanted to learn as much as I could, I did not use any premade elements and started everything from scratch. I paid special attention to the rocks and trees, starting in Maya by getting the shapes that I wanted.
Then I brought the elements into ZBrush and sculpted the details with a bunch of different alphas and brushes, sculpting larger details and then focusing on where I wanted the smaller details. At this stage, I was using my reference board to try and capture any details that I thought were important for selling the assets like rocks and trees.
After I got to a point where I was happy with how the models looked, I baked down the high poly versions onto low polys, brought them into UE4, and started replacing the blockout assets. At this point, the scene was really just white rocks and trees, but I wanted to try and focus on nailing the composition before I added more. In my mind, I wanted to create a space that a character could walk through and explore, so I mapped out the paths and points of interest.
When I was happy with some of the bigger elements, I decided to move on to texturing and creating smaller foliage assets. The rocks and trees were textured using tiling PBR materials, and I utilized the Substance Suite to create procedural textures as well as photogrammetry.
For one of my textures, I decided to go outside and take a picture of a tree in order to create a texture using Substance Alchemist. The rock textures were made in Substance 3D Designer, but I wanted to give myself options. To accomplish this, I kept them relatively simplistic, not incorporating too much detail and breakup. I wanted to make the textures more complex by layering them with some noises in the engine material shader. I sculpted tiling materials in ZBrush and used those to bring out the detail I wanted, layering the high poly bakes with material and noise Normal maps.
Set Dressing & Composition
When the scene was coming to life with the textures, I began to focus on the look I wanted to achieve. This ranged from color correcting the rocks to lightening the bark textures. I accomplished most of those edits in the engine with the material shader. Afterward, I brought in some of the plants that I molded and started painting them through my landscape using the UE4 Foliage brush. After placing them down randomly, I went through with a fine-toothed comb to curate how I wanted the foliage to appear. I started setting up my shots, finding the best angles to show off the assets and points of interest I had created. I placed camera actors and locked them in position, so I could jump back in and tweak the composition as I changed the scene elements.
Things were starting to really come together and I was halfway done with my class. But then, something happened in my Unreal scene where all the foliage duplicated itself, destroying the frame rate. It was to the point where I couldn’t even work in the scene without turning off the detail lighting and all the laid-out foliage.
I decided to press forward anyway so that I could at least have something finished for the class. It was almost unbearable working in the scene because of how slow it was. For the next two to three weeks, I continued adding elements and moving things around in a stop motion fashion due to how bad the scene was chugging.
If I thought the set dressing was bad with a low frame rate, the lighting was going to be a rude awakening. For this scene, I wanted to use dynamic lighting because I had multiple lighting scenarios in my mind and I couldn’t just pick one. UE4’s lighting system is complex and has a lot of options you can play with to get a number of results. I wanted to use that to my advantage and create a bunch of different moods. I spent days playing with the directional light and sky light to get the right colors and interactions with the volumetric fog. I continued to layer them until I got the result I wanted for a specific shot.
Again, I used my reference board, looking at all the scenes I collected to find the details I could replicate. I set up post process volumes throughout the environment and tweaked the saturation and hues to match the moods I was going for, adding yellows to warm up a scene or drawing out the blues to add depth to the fogs.
I took some screenshots and decided that those would be what I submitted as my final project in the class. Even though I finished the course, I knew I wasn’t done with the environment. There were still so many issues with the project and I wasn’t completely happy with it yet.
The first thing that I desperately needed to change was the performance issue. The foliage being duplicated unnecessarily was the biggest thing affecting the FPS. It made working in the scene difficult and definitely slowed my process. I made the decision to remove all the foliage from the scene and start the set dressing over from square one. I also decided to set up LODs for most of my assets, especially the foliage, and to remove the post process volumes I had set up.
When I began set dressing again, I placed cameras earlier so that I could pay more attention to composition. My scene was performing much better and stayed between 27-30 FPS while working, which significantly sped up the development. Removing the post process volumes and getting the same effects only with lighting and fog also helped increase performance. I was going to try for six shots again but eventually decided to diminish my scope and focus on three. My thought process was that three strong shots would be better than six okay shots.
In my second attempt, set dressing took half the time and yielded completely different and better results. I had an improved understanding of what I wanted in my scene, and it really helped me focus on the look I was going for. When I was ready to move on to lighting, I needed to redo all my scenarios because each scene had completely changed. I wanted the lighting to complement the composition, so I exaggerated the colors and contrast in some areas to push the focal point. I also wanted to bring more life to my scene, so I decided to add simple wind to move the branches around and created some particle effects in UE4’s Cascade system. The embers, mist, and dust were all made in the engine and helped add movement and variation to the shots.
As I was approaching the end of the project, it became increasingly harder to concentrate on just one thing. I was conflicted, fluctuating between trying to figure out if I needed more in the scene or if I should just trash the whole environment and start over. Do I tell myself to stop and be happy with what I had or do I keep pushing forward to try and make it better and better? I think as artists the biggest lesson we can learn is that art is never done, the artist just decides to stop. Eventually, I believed that the amount of time I had put in was well worth it and I was ready to put down the brush. This project was such a huge learning experience for me. As hard as it was, it really took me from being an admirer to a full-fledged artist.
Sometimes in life, things don’t go your way, be it in a career or in a project. Unexpected hurdles can have you laid out flat on your back, but you can’t be afraid to get up and, sometimes, start over completely. Usually, on the second try, you’ve grown a lot and learned from your mistakes. It’s not easy and there are bound to be hiccups, but you’ll be better off for it and probably much happier with the outcome.
I think the biggest lesson that I have taken away from this project is to never give up and to know when to give up and try again. If there is anything I can leave the reader with, it is this: keep going! Trip, jump, and run to reach the finish line (or in this case, the stopping line), you’re closer than you think.
Special thanks to my teachers Max, Peyton, and Anthony for mentoring me through the process and to Zach, my friends, and family for the support so far!
This content is brought to you by 80 Level in collaboration with Unreal Engine. We strive to highlight the best stories in the gamedev and art industries. You can read more Unreal Engine interviews with developers here.