Antoine Louisia shared the details behind his stylized Lighthouse diorama and talked about the water simulation.
Antoine Louisia shared the details behind his stylized Lighthouse diorama and talked about the water simulation.
Introduction
Hello everyone, my name is Antoine Louisia and I recently graduated from LISAA Paris, a French video game school. Before that, I studied computer science and programming. I am currently working as an intern FX Artist at Ubisoft PARIS, so I am very new to the industry.
I fell in love with GFX as soon as I learned how impactful it can be in a game: greatly improving moods, giving more dynamism to an action, or just making impressive explosions. Then I started looking at tutorials and breakdowns and also trying to recreate FX I saw in games.
Mathieu Martinet, my mentor at that time, taught me many things and gave me a huge amount of tips to get as far as possible into the learning process. Halfway through the course of the diploma, I had the opportunity to do an internship at Ubisoft PARIS which allowed me to work on the Predator Event Update for Ghost Recon Wildlands.
VFX in Games Nowadays
Time passing by, all hardware limitations are being pushed away, allowing us to work with higher textures resolutions, GPU rendering for particles, PBR for better FX integration, lightmapping, vertex animation, etc.
And lately, game companies are giving more and more importance to FX Artists in their game, giving us the opportunity to work with quickly evolving tools. We tend to use the same software and tools as VFX for film, such as Houdini, which seems to be a must-learn today. It offers the possibility to work procedurally which greatly increases our pipeline in some cases.
Projects
The goal of the year was to produce several personal scenes (concept, modeling, lighting, FX and more) and a 6-month group project.
For school projects, we had to use Unity, but all of my personal work has been done in Unreal Engine 4.
For each scene, my goal was to learn something new: a new process, a new software, FX-related or not.
Lighthouse Project
This scene was the first one I worked on during this year. I wanted to try the diorama format to learn more about shaders and to discover Unreal Engine 4.
I decided to go for a stylized looking scene which gave me the opportunity to explore some other workflows, especially for FX and shaders. The idea was to do a simple and peaceful scene to train some skills I was lacking.
There is actually no particular reason regarding the choice of the island and Lighthouse, I just thought it could fit very well with the diorama format and the water shader learning.
Modeling the Environment
As I don’t like working on FX without context, I decided to work on some environment elements first. Most of them are modular so I can easily and quickly use them to set up a global mood with some lighting.
The global shape for the island comes from numerous sketches I did. Once I was happy with the result, I jumped right into ZBrush and 3ds Max to get some rock shapes and the lighthouse modeling. I also added wetness to the rock by using vertex color.
All materials have been made using Photoshop/Substance Designer and 3DCoat/Substance Painter.
Trees
My work on trees was mainly inspired by Alex Treno’s work on vegetation. The idea was to get some stylized looking trees and grass with heavy wind applied to it.
The grass is made in a very simple way: I started by creating grass shapes in 3ds Max. From that, I rendered the normal and alpha output. Then I tweaked the colors in Photoshop.
The tree is made in SpeedTree. I first created a simple small-tree shape in it, and once all the leaf meshes were set up, I made the leaf and flower texture in Photoshop. The shader is pretty much the same as the grass one, but the vertex color that is used as a mask for the wind is directly exported from SpeedTree.
Stylized Water
The method used to put color into the shader is key to achieving the stylized result. Color gradients and depth-fade as a mask were used to achieve the watercolor.
Also, I used an animated cookie shader to fake clouds for the sunlight, giving the water more color and contrast.
As for the foam, this part was pretty simple to achieve: I applied a flow map on a noise texture, and then hardened the edges to get something more stylized.
I used vertex color to display the waves and the foam only on the top of the mesh, and another vertex color to add more foam and bigger waves on the shores. The reason why I added that is that it gives a more “realistic” look to the ocean and allows a better blending between the island and the water.
Adding Volume to the Water Body
My first struggle was finding a way to make the waves fit the scene better. I first used a pair of panning noise maps, but the result was not good enough. It really lacked a dynamic feeling. I decided to look for some Algorithm which could help me to get the result I wanted.
Then I learned about the FFT Waveform and the Gerstner Algorithm. Gerstner was the one I decided to go for since I thought it fits very well with a stylized water rendering, and with the help of the tutorial below I managed to put it in Unreal’s material editor.
Challenges
Since I had a short amount of time to work on these scenes, the main challenge was staying as efficient as possible. As I was learning Unreal Engine 4, shaders, and SpeedTree, it was difficult to get everything done without taking too much time as the year was mainly revolving around the 6-month group project, and I had other scenes to make.
That is why I tried to keep everything as simple as possible in here while trying to have good looking elements. Working with modular elements helps a lot in this case: they are easier to make and to use and allow quicker iteration to level design.
Working on different types of shaders (water, grass, water splashes, etc.) got me very comfortable with shader creation and helped me to apply this knowledge to other situations.
For a very long time, the scene lacked life: it was just a static lighthouse with a very calm water surface. Finding out about the Gerstner Algorithm helped me a lot to improve the water overall, and adding small FX such as birds, fish and clouds made it feel more alive.
Conclusion
I would like to thank 80.lv for giving me the opportunity to share my work with you all. Feel free to ask if you need any kind of information about this work or other work I did.