Perhaps not boasting the most descriptive of names, BabyGL is an OpenGL learning experiment that renders geometries illuminated via adjustable point-lights.
Note that although the running demo only features spherical geometry, the other parametric surfaces within par_shapes are also supported.
It is worth mentioning that there is a single green directional light pointing upwards in this scene. Future work may expand on this, or simply have it removed.
A pre-built binary is available within the build folder.
./build/main.exe
To build a new binary on a Windows environment, first run the appropriate 64-bit
vcvarsall.bat, then ./build.bat
.
Standard Controls
Controls | Description |
---|---|
` | Toggle debug mode |
Mouse Movement | Move view |
WASD, Shift, Space | Move position |
Debug Mode
Controls | Description |
---|---|
1-5 | Select slider |
Q, E | Shift slider value |
Tab, Shift + Tab | Cycle point-light selection |
Sliders are numbered from top to bottom.
Slider # | Affected Point-Light Property |
---|---|
1 | Ambient Intensity |
2 | Diffuse Intensity |
3 | Specular Intensity |
4 | Linear Attenuation |
5 | Quadratic Attenuation |
This project was created as a way of learning opengl, and graphics programming in general. The amount of learned material is both varied and vast, and that list is best discovered via a peek over the project source. For the sake of brevity, a list of each shader with a notable highlight are included below.
Shader | Notable Highlight |
---|---|
GPass | Writing geometry information to texture. |
LPass | Passing information via uniform buffer object. |
Bloom | Altering shader via subroutines. |
GUI | Building geometry from information passed via vertex buffers. |
Outline | Working with stencil buffers. |
PerlinTexture | Precomputing a texture via shader for future use. |