Modular environment
Project overview:






Development time: approximately 130 hrs.
Texture size: 1024*1024 (procedural), 2048*2048 (atlas)
Description:
This is a modular environment scene I made based on the concept art by Qiao Yun.
I created the tiles set in powers of 2, assembled and rendered in Unreal Engine 4.
It was a challenging project for me because the concept I chose had many organic shape objects which were difficult to break down. To make these pieces modular, I need to make sure that they can be fit to each other, so a lot of measurement was done. I also learned about how to combine procedural and atlas texturing technique by experimenting with different UV channels.
Texture size: 1024*1024 (procedural), 2048*2048 (atlas)
Description:
This is a modular environment scene I made based on the concept art by Qiao Yun.
I created the tiles set in powers of 2, assembled and rendered in Unreal Engine 4.
It was a challenging project for me because the concept I chose had many organic shape objects which were difficult to break down. To make these pieces modular, I need to make sure that they can be fit to each other, so a lot of measurement was done. I also learned about how to combine procedural and atlas texturing technique by experimenting with different UV channels.
View mode
Reference image breakdown
I started the project by breaking down the reference concept, prioritized and sorted parts into an asset list. I then modeled each piece according to its priority and tested out the modularity by assembling a scene in Unreal.
|
Proof of modularity
Other than assembling the reference concept scene in Unreal, I also made another custom scene as shown in the image below to test out the modularity.
I tried to make the custom scene completely different from the original concept to prove that the modularity is working.
I tried to make the custom scene completely different from the original concept to prove that the modularity is working.
UV and texture
UV MAP CHANNEL (ATLAS VS PROCEDURal):
When organizing UVs, I used multiple UV channel maps to combine procedural texture with the atlas bake texture.
This is my first time doing that on the modular environment, so I was a little bit confuse at the beginning. I spent some time to plan and separate assets into two groups: the atlas group and the procedural group, and organized their channels for use as shown in the table below.
This is my first time doing that on the modular environment, so I was a little bit confuse at the beginning. I spent some time to plan and separate assets into two groups: the atlas group and the procedural group, and organized their channels for use as shown in the table below.
UV Map Channel |
Atlas Group |
Procedural Group |
Channel 1 |
Use for both painting and bake texture (Albedo, Metallic, Roughness, Occlusion, Normal, Cavity) |
Use for bake texture (Normal, Occlusion) |
Channel 2 |
Lightmap |
Lightmap |
Channel 3 |
- |
Procedural texture (Albedo, Metallic, Roughness) |
The atlas group is for pieces that need unique texture and the procedural group is for pieces that need tiling but still need bake texture. Some piece such as door and windows require both method because the door/window part need to be unique but the wall that hold them need a perfect tiling. In this case, I used material ID to separate them.
UV layout (ch1):
atlas group texture:
Procedural group bake texture:
Material:
Water
Foliage
Skybox
caustic
POST-MORTEMS:
What went well
What went wrong
What I learned
- Good use of the asset list
- Modular set worked well. The tiles fit without any problem and they can be used to create different scene.
- Master materials allowed fast iteration
What went wrong
- I unwrapped every modular tile, put them in the same atlas and baked normal. Some piece with flat surface doesn't even need normal bake. With bake normal on every face of the tiles, the normal will look weird after demodulated.
- I had a hard time with lighting because at first, I used a very dark albedo
- I exported the meshes in the scene to demodulate from Unreal and found out that Unreal like to stitch UV faces that are the same together. This made the UV faces overlapped and difficult to recreate a custom light map channel later.
- When I vertex painted some face that contain triangles, the gradient looked very bad.
- At first, I tried to make the scene look very realistic and added many grungy details. I did not consider about how to make the atmosphere match the concept, which is more on a fantasy side rather than realistic. If I considered about it sooner, I would not have to spend a lot of time to fix it later.
What I learned
- Flat surface doesn't need normal map. One smoothing group might cause the face without normal to look weird but after demodulating the tiles, everything will be solved.
- Vertex painting doesn't look good on faces that contain triangles. To get a better result, the mesh needs to have more quad topology.
- If the lighting looks too dark, adjusting the lighting bound will help a lot.
- When lighting a fantasy scene like this one, color point lights will help making the scene look more glowy and dreamy.
- From my experience, demodulating meshes from assembling pieces in 3dsmax were easier and cleaner than demodulating from Unreal.
- It's too risky to bake normal on faces that has vertex holding too many triangles.
- Some materials have the same vertex painting setup. This can be put into material function to simplify the expression
- When making environment based on the concept, I should consider about the art direction because if the art direction does not match the atmosphere in the concept, I did a bad job as an artist.