Computer Graphics
Final Project
"Impressive Impressionism"
This project focuses on the implementation of layered shader techniques in Unity to create an "oil painting" visual effect in a 3D, walkable space.
Katie Clark
@ktaclark
Adhan Razzaque
@adhan-razzaque
Dario Jimenez
@dariojimenezp
Background
In the spring semester of 2023, I was a student in CS 354: Computer Graphics at UT Austin where our final exam was an open-ended group project.
My team created a unique set of "shaders," specialized scripts that alter the way a scene is rendered, in order to emulate a number of different art styles, especially more painterly movements like Impressionism.
Prior Research & Goals

One of our inspirations and major reference points for the finished look of this project were Van Gogh's cypress trees.
Research
Before beginning this project, my team and I researched what distinguishes the Impressionist art style from others. We chose to highlight thick stroke weight, medium saturation in colors, and stroke direction that follows the natural curve of surfaces depicted. By identifying these unique characteristics, we were able to formulate the goals of our shader system.
After determining those characteristics, we were able to begin researching known graphics methods to achieve the artistic characteristics.
Goals
The goal finished product of this project was to create a 3D, walkable scene that the player could explore in order to create the illusion of being transported into an oil painting.
Shader Effects

Original 3D Scene
To test out our set of shaders, we found this free forest scene asset.
The user can traverse a small world of lush forest scenery.

Edge Detection
We defined edges as areas with where we detected significant color change. Edge detection finds these areas by determining the gradient of nearby pixels using a convolutional matrix. Then, we can define the outlines of these objects and apply them to creating the illusion of strokes.

Kuwahara Filtering
We implemented Kuahara Filtering, a method to apply smoothing to an image without compromising on its sharpness, in order to add a look of color blocking and thick paint application.

Color Filtering
To give the illusion of a limited, impressionistic color palette, we implemented a fragment shader that adjusted the colors to an expected range of saturation. These settings were then exposed to the Unity editor so that users have more control over the look of the color scheme.
Finished Product Gallery
With different levels of each shader setting, users are able to replicate a wide variety of painterly art styles within the 3D scene.







