Website powered by
General / 08 March 2018


Rust Project

So far...

A lot has happened in the last few weeks and what I've developed so far for my Honours project, I've turned into a mini project called Rust which has been great to make. The reason for making this scene was because it allowed me to go back to some of my older assets such as the Dodge truck model to improve the topology and texture. It also helped me understand the game mechanics better such as introducing LODs (levels of detail) and implement game mechanics such as particles and lighting together. The great thing is, everything I've learned here can be transferred into my Coral Reef environment. 

Anyone wondering what this project is about, it's my Honours project about raising awareness of the marine coral environment: Save our Coral

So continuing on from my last entree and what I wanted to achieve:

  1. Lighting effects (Caustics and God rays, tint) 
  2. Foilage (Grass, seaweed)
  3. Model optimisation + Game mechanics

1.Lights, Camera, Action!

Anyone who is anyone in the industry will tell you how important lighting is, lighting alone has the power to change a mood of the atmosphere completely. I wanted to nail two things that are essential to my environment to be a little more believable, which is underwater caustics (like you see in your bath) and God rays or light shafts. Something similar to this image here:

Image owned by Maniaks3d

After having a look around I found a few users post about making caustics in UE4 such as Water Caustics, taking the basics and using the 4waymotionchaos again I tweaked a version that will work for my environment. There is also scalar parameters that can be altered in the material instance for more control.  The 4waymotion gave the rippling animation needed to simulate the motion of caustics then I added a second caustics map to break it up. You can find more about this searching around on youtube, this is based on multiple tutorials but works great for me. 


I made the actual caustic maps from using a generator that will produce maps for free at 512px, however, there's quite a bit of tweaking involved. I then took these maps into Photoshop and altered the levels so the depth wasn't so extreme and added blur to cancel the strong ages. It was a case of applying a material instance where I could edit the caustic on the fly. This was especially helpful for setting the speed and size, the material is also a light function so any assets in the environment will have the caustic effect applied. 


Okay so the next thing was to add God rays that were piercing through the water, this was pretty hard for me as every tutorial I tried didn't work. Originally I made a cone shape following this video:  but towards the end, it wasn't working correctly so I decided to scrap that idea.  I did manage to take some things from it, however, such as using a panner with a noise texture to give movement to the light shaft. Once again just like the caustics I had parameters to allow for adjustments in the material instance.

I had seen this method for making light rays from a few other UE4 developers who also linked the static mesh to a sprite in the blueprints editor then giving variables to parameters such as time, scale, etc. 


Here is the cloud textured used as an alpha-map through the red and blue channels to give transparency to the light shaft and motion. I also changed the tint around which is an exponential hight fog that simulates the feel of underwater to a certain degree I'm still playing around with small things such as some blur and refraction/reflection. 

2. Green Planet

I started with implementing some seagrass to start with, I decided to just keep this one really basic. I wasn't really focusing deep into the best grass as the main focus will be corals. It is as simple as a basic mesh basically cards with PNG grass strands then in the material editor I tweaked the colour and made light pass through the blades 


I might go back and optimise the grass however as it's not the most efficient with the poly count, perhaps use LODs. It was also a case of using Substance on the grass PNG to get a Normal map and Ambient Occlusion.


To get the movement was simple enough as well it required playing around with the simple wind effect to mimic a motion that would relate to the ocean's current, I'm currently working on a more realistic way for the grass that would feel like a true current. Speaking of LODs I did make them for the B_assets we could call them. The seaweed for example which is made with Maya: 


After making the Grass and the seaweed I added them to the brush editor in UE4 and made the density high with a range for the scale and rotation to give the illusion of different sizes for a more natural look. 

There are multiple ways of animating the seaweed one way would of to make a skeleton rig and weight paint the model for animation. However, I decided to use a gradient weight and make a more advanced version that was used on the grass that wouldn't break the model. This took some time and effort with a lot of help from the UE4 community (A special thanks to them!)  There's also a ripple motion on the leave individually to simulate the current using the alpha from the diffuse map, the animation sweeps by using the meshes position. This took a lot of patience and trial and error.

after all, I'm, not a game developer 




Right now all the assets such as the rocks are individually textured however I think it will be much better for them to use a material that works on the world position perhaps with a dynamic moss on it. I think this will be much more effective than having to texture each one also there will a lot of rocks as that's what the majority of coral grow on. 

Assets like these are made in Zbrush and high to low poly projected to get the most detail. Just like the seaweed they also use LODs for the most poly count withing UE4. I used the clay tool with an alpha map set onto the spray to get that "rocky" look at the end, I start with just a standard sphere and moulded it around. 


Besides using LODs to optimise the poly count it would be wise to perhaps you cards with rendered images for the furthermost away content, I'm also looking into collision maps and the user interface. 

Next ...

You'll notice there was also particle effects that I will explain in the next post, I'm also still working in the script ( these things take time) I've just bought an HTC Vive so I'm waiting for that to come. In the meantime I'm looking a making the interface and the game structure, this could be the hardest part as I don't have any knowledge on how to do this. Besides these in making small coral assets that should be ready to implement at the end.

I also want to note I am looking at photogrammetry and finally have the tools to do it, however, I do know this can be a very tedious job and might be too overwhelming to feature in the final piece. Things are going well with the environment and I'm pleased with my work so far, hopefully, you like it too!


More about: Coral reef bleaching

Coral Reef before and after by Chasing Coral