top of page
{ShaderFull}.0392.png

Unreal Engine 5

2 Weeks

Combined Shader

This project was created as part of a school assignment where the goal was to develop a custom shader of your own choice.

The Project

For this project I created a combined stylized shader, by creating a collection of shaders that wouold give off a hand painted and cartoon-inspired look. The shader comines three seperate effects: a cell shader, outline and a painted filter.

​

The goal was to create a flexible material that could be adjusted in Unreal Engine trough exposed parameters to get various visual styles.

Cel Shader

I started by building the cel shader as the foundation of the material. Instead of a simple two-tone lighting setup, I created adjustable lighting bands to provide more control over how light changes across the enviroment.

​

Each band can be individually adjusted in terms of brightness, contrast and hue. This makes it possible to experiment with different lightning styles while keeping the underlying materials unchanged.

​

One of the main challenges was finding a balance between clearly defined bands and natural-looking lighting. Too few bands made the enviroment look flat, while too many quickly became messy and dufficult to keep track of.

Skärmbild 2026-08-18 202520.png

Outline

The second stage was adding an outline to help make clear distinctions between objects.​

​

I created parameters for outline thickness, sensitivity, amount and color, allowing the effect to be adjusted depending on the desired style.

​

A challenge here was controlling how the outline reacted to different surfaces. I decided to focus on making the effect adjustable rather than using one fixed value since different enviroments would require different seetings.

{ShaderFull}.0392.png

Painted Filter

The final part was adding a painted filter to break up the clean appearence and create a more hand painted feel.

 

This turned out to be the biggest challenge and was by far the part of this project that took the longest. I considered several times if wether should instead  focus on something simpler. ​

​

The biggest challenge was figuring out how to make the textures follow the surfaces of the objects instead of simply being projected over the screen.

​

To solve this, I used surface normal information to influence the texture mapping and distort the texture sampling. This allowed the painted effect to respond to surfaces rather than only following the camera view. Adding parameters for texture, scale and effect strength, then made it possible to adjust the look of the painted filter.

​​

​

{ShaderFull}.0392.png

The three systems combined creates a cartoony shader with a hadn painted feel, that can easily be adjusted to fit different visual styles,

bottom of page