Project Status: Finished
Project Type: Solo
Software Used: Unity
Languages Used: C#, HLSL
In this project i was given 8 weeks to pick any software of choice and specialize in it. Since i've already worked with shaders 1 period before this, i thought to myself "Yeah that was cool, i'd love to know more about that."
In this elective, aspiring professionals delve into the software relevant to their professional practice and to specialize. They explore their (future) job market and determine which software is most relevant to them. They familiarize themselves with the software and apply this knowledge in an exam.
In the first week of this period there was a list of existing user stories for Operation Starfall.
And of one these user stories said something along the lines of 'I want the game to feel like watching an 80's NTSC TV.
Which of course sounded pretty cool to me, so i picked that user story.
At first we were tasked to create a little presentation about the subject you've picked. And here is the one i created with a retro-like aesthetic My Presentation
Me experimenting with volumes overrides:
Lens Distortion & my first iteration of chromatic aberration shader.
I was asked to look for possibilities to create custom overrides for unity's volumes.
So i went on ahead and found out it's pretty simple which led to the creation of 2 scripts.
A 'TintRendererFeature' and a 'CustomPostScreenTint'.
These two scripts work together to apply the tint to your screen.
Create & Add
In the snippet above a new TintPass is created and assigned.
Also the assigned tintPass is enqueued to the renderer in use.
My Custom Volume Override:
Here a float and color is added to the inspector with booleans to turn them on or off.
RGB offset on a texture:
Here i've been playing around with Shader graph to create an chromatic aberration like effect.
Fullscreen Aberration
This feature is directly added to the renderer. It splits every rendered object RGB values apart with an customizable offset.
At the end of the 8 week period i've learned a lot more about render pipelines, shaders and how they can work together. Which i at first did not have the slightest knowledge about. I was stuck on getting my screen tint to be rendered for 2 weeks straight. Turns out the issue was i forgot to add my renderer feature, to the renderer. Since there was nothing dysfunctional about the shaders i've created.
The Shaders:
Image 1: UV-Space Chromatic Aberration
This shader applies a UV-space chromatic aberration effect within the bounds of a 3D object,
rather than screen-wide. Each channel is manipulated based on altered UV input to simulate
color fringing in a localized, object-contained way.
Image 2: Fullscreen Chromatic Aberration
Both implementations separately manipulate and recombine color channels to form new RGB vectors,
then blend those with a sampled source using a strength-controlled EffectMultiply
parameter.
Outside of the 8 weeks i worked on the RGB offset shader, I've been experimenting of my own with rendering settings etc. But that is yet to be continued another time.