Caliber is a lightweight, performance-focused 3D graphics framework written in modern C++20. It serves as a testbed for Physically Based Rendering (PBR), procedural animation, and custom game engine architecture.
- Core Language: C++20 (Utilizing modern features, move semantics, and aggregate initialization)
- Graphics API: OpenGL 4.6 (Core Profile)
- Extension Loader: GLAD (Dynamically loads modern OpenGL functions)
- Window & Input: GLFW 3 (Handles cross-platform window creation, mouse delta capture, and keyboard state)
- Mathematics: GLM (OpenGL Mathematics for matrix transformations, quaternions, and vector calculus)
- Asset Pipeline: Assimp (Open Asset Import Library for parsing complex
.gltfhierarchies and materials) - GUI / Tooling: Dear ImGui (Immediate-mode GUI for real-time debugging of PBR materials and lighting states)
- Build System: CMake (Standardized, cross-platform build generation)
- Physically Based Rendering (PBR): Full metallic/roughness workflow with HDR lighting support.
- Complex Model Loading: Integrates
Assimpto parseglTFnodes, meshes, and hierarchical transformations. - Procedural Animation System: Mathematical, frame-independent animation controller handling weapon recoil, slide mechanics, and magazine drops.
- FPS Viewmodel Physics: Features a spring-based viewmodel sway system that reacts to mouse delta for heavy, realistic weapon handling.
- Dynamic Lighting: Real-time muzzle flashes tied directly to the weapon's local coordinate space.
- ImGui Integration: Real-time debugging and parameter tuning for materials, transforms, and lights.
Caliber uses a standard CMake build system.
# Clone the repository
git clone https://github.com/Virus2466/caliber.git
cd caliber
mkdir build
cd build
cmake ..
cmake --build .