A showcase of OpenGL shaders in both 3D and 2D, with ray-marching and other techniques
This project is done in collobration with my programming partner Liam Deheaudt, I am in charge of shader-making, lighting and coming up with mechenisms of the diaplay (done using a bill-board like structure when player is far from shaders and a full-screen transparent film when in the 'inside mode'.
The shaders are largely inspired by/based on many excellent works on shadertoy, expecially those of Íñigo Quílez, Dave Hoskins and LeWIZ.
-
Mandelbox (the scale multiplyer changes over time)
-
Mandelblub
-
Sierpinski's tetrahedron
-
IFS based on Sierpinski symmetry
-
Semi-transparent Quaternion Julia set (4th dimension evolves over time)
-
Cloud with Volumetric ray-marching
-
Structure generated by Kleinian group in 3D torus
-
Galaxy (2D shader)
-
Kaleidoscope (2D shader with octagon symmetry)
- Renders fluidly in real time (tested on iMac)
- Unified global lighting controlable with keys
- Soft shadow in all solid shaders
- Able to explore up-close and go through all 3D shaders
- Post-processing effect for vintage mode
Run make
to compile.
Run with:
./ShaderPixel
Mouse movement
Controls the angle/direction of the camera
-WASD
Move camera (exact movement based on the mode below)
-1
Vintage mode on/off
Space
go in/out of inside mode when close to shaders
arrow keys
adjust the x, y coordinate of main light
+, -
adjust the z coordinate of main light