Experiments
This repo contains some experiments I’ve been doing with openGL, trying to implement various computer graphics techniques.
Not all the experiments are successfull, some are still WIP, I may come back to them one day.
List of experiments
Voxel based global illumination
This is a simple implementation of voxel cone tracing.
Here’s a little write up about that technique and its implementation.
Global Illumination with Light Propagation Volumes
This is an incomplete implementation of Light Propagation Volumes.
Here’s a little write up about the implementation.
Spherical Harmonics Viewer
A little tool to view spherical harmonics that I built while reading about them.
GPU Bitonic Sort
An implementation of bitonic sort using compute shaders, with a little visualization.
N-Bodies
Implementation of N-bodies simulation.
Here’s a little write up about it
Fast Fourier Transform
Implementation of 1D and 2D fourier transform and inverse fast fourier transform.
This shows a signal (Top plot) that gets transformed in frequency space (Middle plot), and reconstructed using inverse fourier transform (Bottom Plot)
This shows an image input with its Fourier transform on the right, and the reconstructed image at the bottom.
Ocean FFT
This is an implementation of an ocean simulation with fourier transform, based on this paper
Here is a little write up about the implementation
Pic Flip Fluid
This is an implementation of Pic-Flip fluid simulation
Here’s a little write up about the implementation
Decals
This is an implementation of deferred decals.
Here’s a little write up about the implementation
Path Tracer
This is a simple path tracer, based on Demofox’s series on path tracing.
Tiled Rendering
This is an implementation of Clustered and Forward+ rendering, with performance comparisons with forward and deferred.
Screen Space Ambient Occlusion
Simple implementation of SSAO, based on LearnOpenGL’s
Screen Space Reflections
Simple implementation of screen space reflections, without fallback for out of screen reflections.
Post Processing
Some simple post processing effects :
Chromatic Aberation
Depth Of Field
CRT Effects
God Rays
Vignette
Sharpen Filter
Order Independant Transparency
Implementation of order independant transparency, based on LearnOpenGL’s
Not sure if it’s fully working…
Cascaded Shadow Mapping
Implementation of cascaded shadow mapping, based on LearnOpenGL’s
Shell Fur
Implementation of Shell Fur algorithm.
Sparse Virtual Texturing
Implementation of Sparse Virtual Textures. It’s almost working, just a problem to solve on the edges of the sub textures.
Screen Space Directional Occlusion
Implementation of Screen Space Directional Occlusion.
I don’t know if it’s really working, getting odd results..
Subdivision Surface
Implementation of Subdivision Surface algorithm.
Sparse Voxel Octree
Implementation of sparse voxel octree construction and rendering on the GPU.
Kuwahara Filtering
Implementation of Kuwahara Filter for images
Reflective Shadow Map
This is a failed attempt at implementing this technique. I’m not sure why it’s not working, I may try to fix it later.