Experiments


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.

Link to the repo

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.

VXGI VXGI

Global Illumination with Light Propagation Volumes

This is an incomplete implementation of Light Propagation Volumes.

Here’s a little write up about the implementation.

LPV

Spherical Harmonics Viewer

A little tool to view spherical harmonics that I built while reading about them.

SH

GPU Bitonic Sort

An implementation of bitonic sort using compute shaders, with a little visualization.

Write up

BitonicSort

N-Bodies

Implementation of N-bodies simulation.

Here’s a little write up about it

NBodies NBodies NBodies

Fast Fourier Transform

Implementation of 1D and 2D fourier transform and inverse fast fourier transform.

Write up

FFT

This shows a signal (Top plot) that gets transformed in frequency space (Middle plot), and reconstructed using inverse fourier transform (Bottom Plot)

FFT

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

OceanFFT OceanFFT

Pic Flip Fluid

This is an implementation of Pic-Flip fluid simulation

Here’s a little write up about the implementation

Image 1 Image 1
Image 1 Image 1
Image 1 Image 1

Decals

This is an implementation of deferred decals.

Write up

Here’s a little write up about the implementation

Decals

Path Tracer

This is a simple path tracer, based on Demofox’s series on path tracing.

PathTrace

Tiled Rendering

This is an implementation of Clustered and Forward+ rendering, with performance comparisons with forward and deferred.

Write up

Tiled

Screen Space Ambient Occlusion

Simple implementation of SSAO, based on LearnOpenGL’s

Write up

SSAO

Screen Space Reflections

Simple implementation of screen space reflections, without fallback for out of screen reflections.

Write up

SSR

Post Processing

Some simple post processing effects :

Chromatic Aberation

CA

Depth Of Field

OIT

CRT Effects

OIT

God Rays

OIT

Vignette

OIT

Sharpen Filter

OIT

Order Independant Transparency

Implementation of order independant transparency, based on LearnOpenGL’s

Not sure if it’s fully working…

Write up

OIT

Cascaded Shadow Mapping

Implementation of cascaded shadow mapping, based on LearnOpenGL’s

Write up

Shell Fur

Implementation of Shell Fur algorithm.

ShellFur

Sparse Virtual Texturing

Implementation of Sparse Virtual Textures. It’s almost working, just a problem to solve on the edges of the sub textures.

Write up

SVT

Screen Space Directional Occlusion

Implementation of Screen Space Directional Occlusion.

I don’t know if it’s really working, getting odd results..

SSDO

Subdivision Surface

Implementation of Subdivision Surface algorithm.

Write up

Image 1 Image 1
Image 1 Image 1
Image 1

Sparse Voxel Octree

Implementation of sparse voxel octree construction and rendering on the GPU.

RSM

Kuwahara Filtering

Implementation of Kuwahara Filter for images

Write up

Image 1 Image 1 Image 1

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.

Write up

RSM