Day/Night Cycle Skybox
Ambient Occlusion
Cave generation
Legacy overview video
For the final project of my Computer Graphics class, I and 2 other people made a real-time voxel game based on Minecraft using OpenGL, C++, and GLSL.
I created the procedural skybox with day/night cycle, and distance fog using GLSL shaders. The shooting stars are mainly driven by 3D Perlin Noise, stretched along the world y axis to create thin strands. Then the sunrise & sunset effect are made by interpolating between a few pre-defined color palettes based on a time parameter.
Ambient Occlusion was implemented by checking surrounding blocks for each vertex and then bake into the alpha component of the vertex color to pass into GPU. Encoding works as:
if AO = 1, alpha = 1, then color.a = 1.1
if AO = 0.4, alpha = 0, then color.a = 0.04
In addition, I was responsible for generating the snow and grassland terrain with noise-based height maps, and the underground caves with 3D perlin noise. I also made the player physics respond to lava/water, and post-process screen shaders for lava/water.