Andy Baigent did a breakdown of the sci-fi scene Hydroponics Lab: modeling in 3ds Max, working with Parallax Occlusion Map decals, composition, lighting, post-process, and more.
In case you missed it
You might find these articles interesting
Hey, I’m Andy Baigent, I’m an environment artist at Creative Assembly in the UK and I’m currently working on their new FPS IP as part of the console team.
I’ve always been fascinated with 3D whether it’s films or games and to this day I still love watching breakdowns and ‘making of’ videos for games and films, and it’s this as well as the love of games that lead me to study game art properly at the University of Derby.
Since finishing University in 2012 I’ve worked at a number of studios including Evolution Studios where I was a Prop Artist on Driveclub, Cloud Imperium Games where I was an Environment Artist on Star Citizen/Squadron 42, and Electric Square where I was an Environment/Texture Artist on various projects that I’m not allowed to talk about (some cancelled and yet to be released)!
Hydroponics Lab: Goals
At the time of starting the project, it had been about two years since I had worked on Star Citizen and I really missed making sci-fi stuff so my main goal was to make a small environment using the same workflow as Star Citizen in UE4. Weirdly, using UE4 was a bit of a scary concept as I hadn’t used the engine properly since I pretty much joined the industry but I took it as an opportunity to learn and re-learn all the things I had forgotten about.
So with these goals in mind, I trawled through Google Images, Pinterest, and Artstation looking at anything and everything to do with sci-fi to come up with some ideas and I eventually found this concept by Oliver Guiney. It also had his own breakdown and thought processes on creating the concept which was a huge help!
Apart from Oliver’s breakdown and Pinterest board I also created my own reference board and started gathering a load of reference for props, materials, lighting, etc.
Once I had gathered enough reference, I initially created a blockout of the scene with basic lighting to get a rough idea of what I wanted and where to place certain things. With the blockout complete, along with the reference I had gathered, I created a Trello board and started listing different parts of the structure, different props, materials, everything I could possibly think of.
Whilst the ever-growing lists were a lifesaver as they gave me a pretty clear idea of what I needed throughout the whole project, it got quite tiresome looking at huge lists day in day out, especially in the early stages where everything was marked red for ‘not done’. But overtime, the red marks became green which definitely helped motivate me to carry on.
The whole modeling process relied on weighted normals which is a technique where you can make an object look higher poly than it is by beveling or chamfering the edges, smoothing those bevelled/chamfered edges, and then setting the vertex normals in the same direction as the larger faces.
You can do this by hand, but it’ll take a while and it might not be perfect. However, Ben Boscher has a really cool Max plugin that does this all for you.
Another vital part of this workflow is placing the POM decals (I’ll get on to those in a bit) on your model as well as applying the different tileable materials on the asset. Using the base of the plant pod from the middle of the environment as an example, you can see below how the workflow shapes the asset with the weighted normals, different materials applied and the POM decals used as floating geometry.
A good and quick way of placing decals on an object in Max is to make a selection of your decals and paint them on by using the Object Paint rollout:
- Step 1 – Create a selection of decals away from your model and name them correctly. Also, by selecting the face of the decal (not the object as a whole) and pushing it up reduces chances of Z-fighting when painting the decals on the object.
- Step 2 – Click ‘Edit Object List’ and add your decal meshes into the window that pops up, keep that window open.
- Step 3 – Select the mesh you want to paint on and then select ‘Paint With Object(s) in list’, and select a decal from the list you made in the previous step and start painting on your mesh!
Creating POM lines is a bit more labour intensive, but still quite simple. As we’re going to be converting edges to a Shape or Spline, it helps to have edges in place of where you want your POM line to be (you may have to model them in).
After selecting the edges you want, convert your selection into a linear shape and then select the shape that’s just been generated and make sure ‘Enabled in Viewport’ is ticked. The settings are pretty subjective, it just depends on how thick you want your POM line to be but I would recommend having a very low width to get the faces closer to your original mesh.
Once you’re happy, convert the shape into a poly and delete the poly’s you don’t need, apply the material and UV the mesh to your POM line!
This is, of course, an extremely simple example and on complex meshes, the generated mesh from the shape might not be perfect so there’s often a bit more clean-up involved but the same basic principles apply.
When it came to making the structural elements of the room (floor, walls & ceiling) and the workstation, they were all modeled and positioned in Max and then exported. Doing it this way did mean that there was very little room for flexibility and modularity but given that it’s quite a unique room, I didn’t feel that this was an issue and it also meant that I didn’t have to worry about getting the placement perfect in UE4.
When it came to choosing the vegetation, I had a vague idea of what I wanted; I knew I wanted some sort of vines in the central pods, bushes by the entrance, and some grass in the wall pods but for the most part, it was pretty much down to sifting through Megascans and seeing what worked. The only criteria I had for the smaller plants on the wall racks and around the centre was that I wanted them to have a variety of colours to help break up the scene, otherwise, if I just had the same plant, I think it would look extremely boring and flat.
Using Megascans was great as it is very much a case of ‘what you see is what you get’ and the vegetation needed very little tweaking as I only bumped up the brightness slightly on some the albedo textures to help the plants stand out a bit more.
Another extremely vital part of this scene was the Parallax Occlusion Map (POM) Decals; Parallax Occlusion Maps work in a similar way to Bump Offset, whereby it gives the illusion of depth on a flat surface. Using this sort of shader with decals was key to help break up the tileable materials by adding little details like bolts, panel lines and buttons throughout the scene.
Because the shader is reliant on a height map, I started working on some high poly decal meshes so I could bake them in Substance Designer; some were new and some I had grabbed from an old decal/trim sheet I had made previously. Once I was happy with what I had, in Max, I assigned various meshes different materials to allow me to bake a colour map in Substance, which was used to mask and blend different materials within the textures. It is extremely useful if you want, for example, a metal bolt on a plastic surface.
Here you can see the different materials I’ve assigned to the meshes, the colour map, and the end result:
As you can see, the grey material represents transparent decals so you could lay them over any surface, the blue and red materials represent different opaque painted metals and the pink material represents opaque bare metal.
The hardest part of the decal material was the opacity. As a starting point, I inverted the ambient occlusion map that I baked from the high poly meshes which gave me a good base. But I found some areas weren’t as prominent as others so I used numerous histogram scan nodes to control the levels of the AO and then combined them by using masks which I had created by using a Transform 2D node on with a Shape node.
As there were some decals that I needed to be opaque (like the bolts) I used the ‘Color to Mask’ node to generate masks based on the colour map I had baked from the high poly meshes and blended these into my opacity map for the opaque decals.
One final step on the opacity was to run it all through a few dirt nodes which were also masked and blended together depending on how strong I wanted it for different decals.
Over the past few years, I have slowly built up a small library of materials, so for the most part a lot of the materials I used in the scene came from there and were modified and updated to fit the scene more.
Due to the shape of the room, every part of the structure I made had more or less a circular fashion to it. Because of this, the plant pods in the centre were always going to be the main focus of the composition as the shapes and lines forced your eye to the centre no matter where you looked. The lighting also played a big part in this as it’s predominantly lit towards the middle of the room so there’s already a natural focal point.
From the very beginning of the project, the composition didn’t change that drastically and I kept everything more or less in the same place; the art may have changed in some places but overall the core placement and arrangement hardly changed.
In terms of helping to sell the whole composition and idea, I always had in mind that the lab could be in some sort of space station that’s used for botany research in preparation to move to a new planet. This gave me the opportunity to make a load of lab and office equipment (such as incubators, microscopes, computers, etc.) which really helped push the narrative, not to mention the planet!
The planet was probably the easiest part of the whole project! After finding some Mars textures on the internet I got them into UE4 and then set up a material which ultimately was very simple; I added a dark red to the albedo texture to make it pop a bit more as it was quite brown and dull. I also lerped this with a Fresnel to make it look like it’s got a bit of an atmosphere as if it was in the early stages of terraforming.
The only challenge for the planet was getting the scale to feel right, and to do this it was just a matter of moving it further away and scaling it up. As you can see, in the end, it’s definitely not to scale but it seemed to work!
Originally, my goal for lighting was to use a real-time setup with dynamic GI and propagation volumes which worked amazingly in a new test scene, but annoyingly I couldn’t get it working in the lab. So eventually, about 2/3 of the way into the project, I completely scrapped the idea of continuing with the real-time lighting and decided that when I had the environment finished, I would start again from scratch but with a baked lighting setup. Although starting again from scratch lost me a load of time, it ultimately gave me an opportunity to re-learn a lot of things I had forgotten about lighting in UE4.
Since the blockout stage, regardless of what lighting setup I used, my goal was to replicate the lighting in the concept by using the ceiling lights as my primary light sources.
For each of the main lights, I actually used two lights; one spot light to flood the room and a secondary point light to give the surrounding area a bit of a glow. I had to bump the Soft Source Radius up, otherwise, the reflections of the lights would be too sharp.
To get a bit of contrast in the lighting, I kept all the lights on the wall racks quite dim with a low radius so that it was just enough to light up the plants and didn’t interfere with the main light sources which (as previously said) gives a natural focal point.
In the end, my setup is quite simple, probably not very optimal but as I was going for a portfolio piece, I wasn’t too worried about this.
Post-processing also hugely helped with the overall lighting, mood, and composition. I tweaked bits here and there throughout the project but it wasn’t until the end where I could spend time and solely focus on it.
The majority of the settings I edited were in the Colour Grading section where I increased the Global Contrast to give the scene more depth as it was feeling quite flat. It made the colours really pop so I desaturated the scene by about 25%. Then, I increased the green saturation channel in the Midtones to bring the colours of the plants back as (understandably) I lost a lot of the green information when I decreased the Global Saturation (which is quite bad if your environment relies on foliage/plantlife)!
I also decreased the Red and Blue channels in the Scene Colour Tint to give the environment an overall green tint and lastly, I used a LUT texture from the Amplify LUT pack to give the scene a cinematic tone.
The main challenge was keeping focus on the project as a whole as I quite often found myself taking extremely long breaks and veering off to concentrate on other projects. Whenever I came back to the project, knowing how much work was left instantly put a downer on the situation; it was sort of a vicious cycle.
As I mentioned earlier in this article, I ended up with a huge list of tasks – which was good and it definitely gave a 100% clear idea of what was needed but it wasn’t a great feeling seeing the huge workload, especially in the early days of the project (not to mention after a day’s work too). So I think to combat the breaks I definitely need to cut back on the tasks and lists and maybe replace them with more generalised lists and tasks.
Quite often with any of my work, if something bugs me or doesn’t look right, I can’t leave it alone until I’ve addressed the issue and there were a few times this happened which drastically changed the look and feel of the environment, the main one being the ceiling. I wanted it to be as close to the concept as possible but I found that there was a lot of empty space. To fix this, I just ended up putting in tons of unnecessary details and it became very cluttered so I decided to remake it by making the window bigger. It helped spread out the lights and other details a bit further away from the centre. This ended up massively benefiting the environment: not only did I manage to reduce the noise on the ceiling but it had a huge impact on the lighting and the overall composition of the scene.