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.

Team Members

Team Members

Katie Clark
@ktaclark

Adhan Razzaque
@adhan-razzaque

Dario Jimenez
@dariojimenezp

GitLab Repository

GitLab Repository

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.

Create a free website with Framer, the website builder loved by startups, designers and agencies.