About these highlights

These are some highlights from the game projects that I have made. Everything is made in a custom engine, and a lot of features that we take for granted in engines like Unreal or Unity are non-existent: we have to develop them ourselves from scratch. This is my favorite part of any type of project, because it lets me gain an understanding of what goes on behind the scenes, and develop these graphical features myself. I have implemented features like refraction, depth fade, tessellation and lightmaps (both baked lightmaps for static meshes with the help of Morris Gustavsson, and a technique for getting shadows on particles that I could do myself). All of this is done in HLSL. I also had to develop the pipeline for getting the lightmap data from Unity.

Besides implementing visual features and creating effects, I have also written a lot of tools for these projects, both in C# (both in Unity and standalone) and in Python (PyMEL). Writing tools is something I also love doing, and I believe is a key part of being a Technical Artist. Check those projects out over here!


Lightmaps from Unity

Me and Morris collaborated with implementing baked lighting from Unity into our engine. It was no easy feat, but it was very much possible, and it was definitely worth the effort. I was responsible for everything in Unity, both handling the baking, getting hold of all of the data required, and converting the textures to a proper format. I also did a lot of trial and error in the shader department, trying to figure out how we could use dynamic lights with static shadows, something I eventually figured out. We also experimented with light probes, where I got to learn about spherical harmonics, and export them from Unity as well. Unfortunately, Unity doesn’t expose the tetrahedral structure that is used to interpolate between the light probes, so the task to create that structure instead fell on Morris, after I had tried and failed to generate it in Unity. The question is, how does it work?

Well, the first task was to make sure all meshes has a UV set where no UVs share the same texture space. This can easily be done using an automatic map during export with my Exporter tool. Unity automatically uses this UV set to bake to, so no additional setup is required. Next, we need to understand how the lightmaps are setup.


Water

For our third project I wanted to focus more on environmental effects.


Skyboxes

I have been responsible for creating the skyboxes in all of our games. They have been some fa


UI Shaders

Making custom shaders for UI is surprisingly fun, an interesting challenge and collaboration between art and tech.


Tessellation

Tessellation was more of a fun side project than anything else, but it does add a lot of extra detail to the generated meshes, and allows us to save some memory.


Subsurface Scattering

Tiled forward ftw btw. Super simple, but doesn’t look very good sadly. Well it does, in certain circumstances…