
About
Just a test scene to experiment with lighting and post processing, for Windows, made with C++ and GLSL.
Made in August 2024 for 3D Game Programming assignment. (Semester 6)
This project is about coding with C++ and GLSL to make vertex and fragment shaders. And then constructing a 3D scene with several sources of lighting. And lastly, using framebuffer objects, adding one renderer feature and one themed post-processing effect.
The objects in the scene utilizes diffuse, specular, normal, and emissive textures.
The lighting types are directional, point, and spot lights.
The main challenge in this project is directional shadows, did not manage to get it to work
Themed Post-Processing
For Themed Post-Processing:
The effects used are Spherize, Zoom, Vignette, Tiling Scanlines, and Greyscale
First, I try to spherize the UV, then grayscale, then add scanlines, then finally add vignette
First is Spherize. I take the texture coordinates and distort them into a spherical shape to get that fisheye effect
After I spherize the UV, I zoom in to try and move the weird borders out of the frame a bit.
And then I add grayscale effect.
Then I add a scanline texture overlay. If Spherize effect is also on, then the scanline uv will also distort.
To make the scanlines scroll up or down, I used the Tile effect and used the time value to move the y axis.
Lastly, I add the vignette effect for darker edges.
The main vignette code was created by Ippokratis in 2016-05-21 from shadertoy.com.
I just added the ability to change the vignette colour.
The effects can be individually toggled and tweaked in the inspector.
Software Used




Credits
-
Visual Studio - IDE
- Simple vignette effect by Ippokratis
- Forest skyboxes by Emil Persson
- 3TD Fantasy Ruins Pack by Ron Kapaun
- Animal Figurines by Clint Bellanger
- Gems by Clint Bellanger
- fantasy torch by rubberduck
- Flame Particle by Keith333
- Normal Map Online by Christian Petry and Am Gänsweiher
- Learn OpenGL and Shadow Maps (Directional Lights) Tutorial by Victor Gordan
- Shadow-Mapping
(When I was attempting renderer feature)
Lecturers:
-
Mr Mohamad Faris Zakwan