Hanson Wang shared the workflow behind the Oasis project, showed the approaches that helped speed up and organize work, and explained how the materials were created.
Greetings to all! It is a great honor for me to share some experience of creating my demo reel – Oasis. I sincerely appreciate you for taking the time to read this article and I hope that it will be beneficial to you in some way.
My name is Haoyu Wang, commonly known as Hanson. I was born and raised in China, and currently work as an environment artist for inXile Entertainment. Ever since I was young, I have been an enthusiastic gamer, and working in the game industry has always been my passion and dream. My academic background includes a major in New Media & Sound Art from Emily Carr University. Following the completion of my Bachelor of Arts degree, I embarked on my career as a 3D game artist by attending Think Tank Training Centre. I would like to express my gratitude to all my instructors, classmates, and mentors for their invaluable support and guidance.
Oasis Demo Reel
When I was selecting the concept for my demo reel, I came across an incredible desert environment concept on Artstation created by Maxlm that immediately caught my attention.
The concept's mood and details left a lasting impression on me, and I can imagine the possibilities of expanding on it even further. Additionally, the numerous organic shapes presented a unique challenge. Therefore, I consulted with my mentor, Aleksandar Danilovac, an exceptional environment artist, who agreed that it would be an excellent choice for my demo reel.
To gather reference images, I primarily utilized Google and Pinterest and found Google Images to be particularly useful when searching for specific items whose names I didn't know. I also used PureRef to store and organize my references and I focused on the most essential ones at the beginning. Fortunately, the concept was based on a real-world location, and I was able to explore it in detail using Google Maps' 3D view and capture screenshots, which greatly enhanced my understanding of the area.
Regarding the blockout stage, I began by placing simple cubes in Unreal Engine and adding basic details to differentiate them. Next, I established my primary camera shot, making every effort to closely resemble the concept. Then I adjusted my Maya grid increment to 50 cm and also snapped the blockout cubes to 50 in Unreal Engine because I know I will be using the modularity workflow. The final step was to progressively add various prop proxies, more like placeholders, into the scene. All of these tasks were completed over a period of two weeks.
Initially, my focus in modeling was on buildings. To speed up my progress, I used the modularity workflow that allowed me to reuse duplicated kits. Since most of the buildings in this concept are just basic shapes, the preparation stage presented the actual challenge for me. I dedicated time to correctly segregating the buildings, and thereafter, the modularity aspect was fairly manageable. The duplicated kits are indicated by a red outline, while the unique ones are in a blue outline.
In addition to modularity, I also used a vertical slice approach to organize my work. The first vertical slice is indicated by the green outline. I need to set an overall quality bar and figure out the general workflow of buildings within this vertical slice. The second vertical slice, represented by the yellow area, primarily focused on a distinctive column kit and the corresponding land layout. The purple area is somewhat unique and requires further elaboration, which I will provide shortly.
Regarding the first vertical slice, there is nothing particularly special about the modeling technique. However, I would like to talk about my thought process during the modeling phase. I focused on the broader picture at the beginning and gradually added details, progressing from larger to smaller elements. This approach allowed me to make any necessary adjustments more easily, particularly with regard to larger elements.
Furthermore, I gradually incorporated more props and other kits and manipulated their arrangement until I was satisfied with the overall composition. As these kits are designed to be used together without any visible texture seams, their UV placement must be standardized and try their best to maintain a consistent texel density. I showed three kits from the first vertical slice as examples. It is worth mentioning that UV checker textures are modularity’s best friends.
In terms of the land/floor part of vertical slice two, I studied the concept and references, and I don’t think the landscape system is a good fit for this scene, I need more accuracy. Instead, I utilized a large plane as a base, applied a sand material, and added several land kits for variety. These kits included rocks, stones, mud/soil, and sand.
I began creating these kits with a plane in Maya, shaping them roughly to fit any small corners in the scene. I did this because I knew they would be frequently used to cover any harsh transitions. Then, I applied subdivision to give the plane some form and used "Edit Mesh" – "Transform" to randomly select a number of vertices and perform various operations to add more shape to the plane. Finally, I smoothed it to give it a better shading, high to low baking also works here. For greater detail, I suggest doing the transformation process twice.
It's worth noting that I used ZBrush's displacement feature and UE5 Nanite system to quickly create complex geometry, such as the stone fences and walls showcased in my demo reel. With the displacement function in ZBrush, I was able to generate geometry based on detailed height maps that I created in Substance 3D Designer. Initially, I created a proxy shape in Maya, which could be a simple plane. Then, I plugged the height maps into the "Texture Map" and "Displacement Map" on the right side of ZBrush's default interface, adjusted the intensity, and clicked "Apply DispMap". However, it's important to note that I vertically flipped the map that I plugged into "Displacement Map" to avoid the result being upside down.
The final topic of modeling I'd like to discuss is foliage, which primarily involved following an excellent ArtStation tutorial by Cat Yang.
To create the geometry for the palm trees, I mainly used SpeedTree, which offered a range of flexible options for adjusting tree barks, branches, and leaf shapes. I recommend starting by creating the leaf materials and applying them in SpeedTree, as this makes the tree much easier to see than just displaying leaf cards. Additionally, I found that using good references was crucial in the process of designing and building trees.
For the majority of the assets, I used a material layer shader and relied on guidance from a tutorial by Ryan Manning.
I chose the material layer because of its flexibility within Unreal Engine. It eliminated the need for me to frequently return to Substance 3D Painter to modify textures. By creating tileable materials in Substance 3D Designer and using unique masks for each asset, I was able to pack four different masks into a single texture, in addition to a base layer, which means five layers in total. This technique allowed me to include many details while making it simpler to manage and adjust within the engine compared to relying solely on unique textures, as well as being more reusable.
Each layer could be fully controlled by different parameters inside the engine, with the help of Buffer Visualization in UE I could quickly adjust any surfacing details.
Other than that, I also followed the traditional Substance 3D Painter workflow. Since I have so many woods in the scene and some of it was quite similar, I made a painted wood material generator in Substance 3D Designer. This generator allowed me to create textures for as many variations of wood as I needed within Substance 3D Painter.
For the foliage, I assigned a different vertex color to each leaf using the "polyColor" feature in ZBrush. This allowed me to tint leaves based on their respective colors within UE.
Composition & Lighting
Regarding the ultimate composition and design, I followed my primary concept and various atmospheric references. Initially, I aimed to create an impression of a "golden hour," but despite its attractiveness, this lighting setup covered many details of this project, which could be unsuitable for a demo reel. Consequently, I had to constantly modify the lighting and props placement throughout the entire creation process.
Displayed below are a few snapshots of the progression of this project. For a more comprehensive view, please check out my ArtStation page.
Other than lighting, I used fog cards and particle systems to enhance the mood of the scene. Also, PostProcessVolume helped me with it.
That's essentially what I wanted to show about my demo reel, Oasis. Thank you for taking the time to read through it all; your patience is greatly appreciated. For this project, I utilized both traditional techniques and the new UE5 Nanite workflow, which involved a significant amount of effort and a steep learning curve.
This project challenged me not only artistically but also mentally. I would like to extend my sincere gratitude to my mentor Aleks and other individuals who supported me throughout this long journey. It is truly an honor to be given the opportunity to share my experiences and knowledge on 80 Level. I look forward to exploring the game industry further and potentially reconnecting with you all in the future!
You may find these articles interesting