Lightweight OpenGL 3D renderer built in C++ as a capstone project for The Marcy Lab School.
prismGL is a small graphics project focused on learning low-level rendering fundamentals outside of a web stack. It creates an OpenGL window, loads textures, renders indexed geometry, and implements a movable camera.
The project is now built with CMake and supports Linux, Windows/MSVC, and Windows cross-compilation from Linux with MinGW-w64.
- C++20
- OpenGL 3.3
- GLFW
- GLAD
- GLM
- stb_image
- CMake
- Textured 3D geometry rendered with OpenGL
- Camera movement with frame-rate independent controls
- Mouse-look camera rotation
- Resizable viewport with framebuffer-aware resizing
- Cross-platform CMake builds
- GitHub Actions artifacts for Linux and Windows
https://docs.google.com/presentation/d/1KO9wPCWXOwfeYVaQ4cV5OP2ssWn4ZD9pixSIIrQd90w
Install build dependencies, then run:
cmake --preset linux-release
cmake --build --preset linux-release --config ReleaseOutput:
build/linux-release/bin/prismGLFrom a Windows machine with Visual Studio 2022 installed:
cmake --preset windows-release
cmake --build --preset windows-release --config ReleaseOutput:
build/windows-release/bin/prismGL.exeInstall MinGW-w64, then run:
cmake --preset windows-mingw-release
cmake --build --preset windows-mingw-release --config ReleaseOutput:
build/windows-mingw-release/bin/prismGL.exeW,A,S,D— Move cameraSpace/Left Ctrl— Move up/downLeft Shift— SprintLeft Mouse Button+ move mouse — Look aroundR— Rename the windowEsc— Close the window
- Runtime assets are expected in a
resdirectory next to the build output directory. - The default texture can be replaced by swapping
res/aigis.pngwith another PNG using the same filename.
