• Sean Gorman


Here is my post-mortem of my Final Year Project (FMP) titled Camp Hangar, providing and in-depth analysis of the project overall as well as breakdowns of the process of development from start to finish.

"Draw a circle, now draw the rest of the elephant..."

Texel density is important in environments and so early on I set a guide on my texture measurements per cubic meter. To help me do this per model, I used a plugin for 3DS Max that helped me to measure and account for texel density called: Advanced UV Normalizer:


It was a great tool that gave me handy information: to 'calculate, get, set and modify the Texel Density of your models based on different parameters such as Geometry Area, Texture Area, UV Area as well as the Geometry/Pixels and Geometry/UVs Ratios.' I used this quickly enough to get started on my materials.

I constructed my shaders in engine too, using visual node logic inside of the material editor to create powerful master materials and bespoke tools. Among them, a master material for props, one for foliage, one for transparent materials, one for absolute world position, another for vertex painting etc and many more.

However so that my material library did not become convoluted, I maintained these materials throughout the project and created numerous instances that were children to these parent materials, by making good use of Static Switch Parameters and implementing a manner of ways each mask or texture can be adjusted, I was able to make a strong master shader that works perfectly across the rest of the scene, while still remaining very cheap due to proper use of the Static Switch Parameters. All together sitting pretty at 98 instructions

Early on, I knew of the importance to experiment with lighting my scene, and took to this almost immediately. Studying and experimenting I learned about Light Mass Portals in UE4, used to direct sunlight through windows and corridors into interiors. These were a recent feature in UE4, that made a slight difference in quality to the shadows in the scene.

With regards to modelling, I used 3DS Max to make the low poly version of each asset, before moving into Zbrush to make a High Poly sculpt or even simply to add a few odd dents. Starting with the architecture in the scene, I then moved onto the larger to medium sized assets to begin to fill the scene, with the groundwork set and the scene boxed in.

For example, lets start with the Portacabin, a large cabin found on construction sites, that would also be found on airport runways. It's a great piece for the environment as it is large, which adds a clear boundary to the environment, while additions can be made over time to aid the narrative.

I started off gathering as much high quality reference as I could, before modelling roughly the general shape of the asset. I work as fast as possible to get the right shape, scale, placement etc of all the pieces belonging to the asset, before moving onto dividing the mesh ready for the *midpoly and proceeding further into the unwrapping and texturing stage.

I paid close attention to the warping of the walls, the wear in the paint, the damp in the corners and edges, and also the decals. Some parts were created with the intention that they would be repeated elsewhere across the asset or the scene, windows and doors particularly, and so I made sure to keep any backfaces and export these assets as seperate pieces to be kitbashed later. I could then populate these interior spaces later.

Another example, shipping containers. These would make for another great asset to make, to render, to dress with props etc and can be instanced throughout the level. Their size also makes them particularly helpful to block in the space to create a border for the play space and they are also unique in that they too can be stacked on top of one another to create levels. So again, references, high res images, studying materials, construction, material details, differences in types of containers, measurements etc. I eventually found two Orthographic images for a longer container, shown above, from which I started to model my own.

From looking at other people's work online and examining how best to make a good shipment container, I had a choice. I could have made a lower poly version which was more efficient but could be scrutinised up close OR I could have made a higher poly version, that yes would be a little more costly in terms of polys but would make a significant visual difference. As you can see with the bevelled panels along the side of the container, these COULD be baked down into a normal map, but looking at the reference material, it would remain obvious to see where this normal map would begin where the pillars lodge into the trims. I wanted to avoid this, as I knew that I would be taking capture footage of the level, with these assets in view almost all the time.

I also knew that I would be constrained in this project by the GPU and not the CPU; essentially that UE4 could handle more polys. And so at the final stage of the model, the asset stood at 2k tris with all of it's attachments shown.

I would bake my high poly to my low poly mesh using Marmoset Toolbag , as I'm fond of the controls there and then continue the process by texturing the asset using Substance Painter. In the texturing phase, I was careful to add small details across the asset, grunge, adding noise in areas of the roughness and adding a slight gradient layer from the base to the top, to communicate how the container has accumulated dirt etc. The container also features doors that can be opened, and an interior that would be populated later.

A number of other assets received the same treatment, a few unique cases also included glass shaders that would be cracked and damaged in places, mesh decals with parallax occlusion to show damage on areas of concrete.

I would even create a shader where I could utilise the vertex information of the wall mesh to shift the layers of my material between plaster, and exposed brick. This would be used on the wall of the main office space, shown above. A large decal written in Russian would be displayed along the side of the wall, that writes the name of the hangar. This was done with a combination of textures drawn from Substance Designer, a tool that I had become fairly acquainted with during my experience with AVR London, creating 3 materials inside one graph with 9 outputs, 3x Base Colour, 3x Normal Maps, 3x RMAH (Roughness, Metallic, Ambient Occlusion, Height).

Early in the graph a warp with a perlin noise zoom works like a charm to add a small amount of wobble to the brick so there are not so perfectly aligned. A slope blur and a perlin noise plugged into the slope will give the impression of fractal damage along the edges of brick. I also used two substance designer filters to help me design my material, 'Get Slope' and 'Height Selector', these are two community created graphs that are very handy, and I would highly recommend them, see here: https://share.allegorithmic.com/libraries/1172.

I was able to utilise the Height map in the Alpha Channel of my mask texture, to paint where I wanted the plaster, the damaged brick and the exposed brick. I do later move forward making a few decals to help break up the shape and values, adding extra detail where I can. I'm sure that I'll add more to this wall later in development, adding a grate, a fan, some wires, pipework etc, but that'll come along later when I work on the smaller assets.

I also adapted this same process, the same tool and used it to create the floor for my hangar, (see above). You can see how inside of UE4 the parallax occlusion mapping really helps to bring that extra level of detail to the material. I used megascans and textures.com to find high quality textures that would work well together, or of similar type. There are certain things to look for in textures when doing this, whether it's a unique visual element or something more generic.

I would then use Photoshop and Substance Designer to merge as many as 5 textures together to form one original texture of my own, combining the aesthetic quality and sharpness of the megascans with details from various other textures. This is how I formed my concrete, my damaged concrete and the moss. It is a well known technique that many artists in the industry have used to create high quality art and quickly.

Some years ago, Photoshop would have been the only software capable of this task, at a cost of time, but the nodes inside of Substance Designer really help for this process and have dramatically shortened the process of eliminating light information from these images. Above you can see two of the materials blending together. The damaged concrete was made using 3 broken concrete textures from textures.com and 1 megascan. Blending these together using masks inside of Photoshop to create a good height map also aided in adding height differences and slopes to slabs of damaged concrete in Substance Designer.

From Designer I would export Base Colour, Normal, and RMAH (Roughness, Metallic, Ambient Occlusion, Height) maps.

At this point then we have something like this. You can see on the floor that I am also able to paint water onto the surface, to show how it has fallen through the dilapidated panelled roof above. It's coming together slowly but surely, but there's still so much to do...