Breakdown Interior Assets
In this post I will give a short breakdown on how the creation of an interior Asset was done for this project.
First, environment assets are split into different areas, areas that use material layering for texturing and areas that don’t. For the door below, the blue areas are shaded by using texture layering.
In this case, I don’t use object specific normal maps. I don’t use them for most inorganic, hard surface assets like this door. Instead I use bevels in combination with face weighted normals. This is easily possible using the Y.A.V.N.E addon (https://github.com/fedackb/yavne). If you are interested in game art and don’t know what it is, you should check it out. By using this method, I achieved nice shaded, flat surfaces without using object specific normal maps. This represents a dramatic decrease in texture memory.
To add further detail, I decided to use a 2. UV set. The first regular, clean UV set is used for the masks and ambient occlusion map and the second as a trim UV Map.
**UV1:**This UV Map is used for the object specific masks and ambient occlusion maps. It is also used to generate the lightmaps in UE4. This UV maps shows different assets combined into a single texture atlas.
UV2: This UV is only used to project the trim detail onto the mesh. The UV layout does not need to be clean. The overlapping of different UV islands does not matter.
To generate the trim sheet I sculpted different tillable detail strips in zBrush. zBrush offers different tools that allow tillable sculpting. The result is afterwards baked onto a plane. Later I generated this kind of trim sheets directly from Substance Designer without any manual sculpting.
To create the masks, I use Substance Painter. I import the low Poly mesh and generate the different baked maps (curvature, object normal, thickness, position). All maps except the ambient occlusion maps are only generated to help creating the masks. The masks are then combined into a single texture using channel packing. I have created a custom export present in Substance Painter. to automatically pack them together. I also use custom channels within substance painter to create the masks. This way I can still display the result in the regular Base Color channel. How you get the masks out of substance painter is not so important. Therefore, I won’t go into further detail here.
In UE4 I used a custom material layering material, similar to the one from Substance Share (https://share.allegorithmic.com/libraries/2125). In UE4 I use a library of different reusable base materials. All of them were created or adjusted by using the Substance Designer. These base materials can be reused across different assets. All these assets below share one small mask texture (I think it is 512x512 in the final game) and the same base materials. By tiling the base materials, it is easy to achieve high Texel densities without tiny textures. By using texture layering for the big surface areas, I reduced the texture resolution tremendously. All these assets are combined into the same texture atlas. The masks can be really low res. As they are only used to blend the tillable base materials.
The detail meshes
The detail meshes use a more traditional workflow. They are sculpted in zBrush, textured in Substance Painter.
I have put a lot of time and effort into getting this pipeline efficient and created several custom tools and scripts for blender.