https://github.com/mkkellogg/core
Light-weight 3D rendering library in C++
https://github.com/mkkellogg/core
Last synced: 10 months ago
JSON representation
Light-weight 3D rendering library in C++
- Host: GitHub
- URL: https://github.com/mkkellogg/core
- Owner: mkkellogg
- Created: 2018-05-22T05:28:43.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-09-14T15:49:24.000Z (almost 3 years ago)
- Last Synced: 2025-04-13T23:09:17.180Z (about 1 year ago)
- Language: C++
- Homepage:
- Size: 1.79 MB
- Stars: 4
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Core
Light-weight, C/C++ based, 3D rendering library built on OpenGL. Ultimately intended to be the successor to/replacement for my older gaming engine, GTE.
## Current features:
* Multi-pass and single-pass forward rendering
* Model import: Support for many industry standard formats via the Assimp library
* Image import: Support for many industry standard formats via the DevIL library
* Dynamic shadows via shadow maps
- Support for directional and point lights (2D and cube shadow maps)
- Multiple cascade levels for directional lights
- Soft edges through PCF
* Physically-based rendering
- Cook-Torrance BRDF
- Image-based ambient lighting for global illumination approximation
- HDR support
- Gamma correction support
* Skeletal animation:
- Vertex skinning
- Animation blending
* Particle systems
* Scene-graph API
* Render-to-texture capability
* Screen-space ambient occlusion
## External dependencies:
- Assimp (Asset Import Library)
- DevIL image library
Dynamic versions of the above libraries are required.
## Building
Standard CMake build is currently supported and an out-of-source build is recommended. To generate the make files, execute the command relevant to the desired configuration (Linux/Unix examples shown):
Debug:
cmake -G "Unix Makefiles"
Release:
cmake -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles"
A release build will be significantly more performant.
#### External Libraries
You will need to modify the locations of the Assimp and DevIL libraries in CMakeLists.txt. The relevant variables are DEVIL_DIR and ASSIMP_DIR.
#### Linux notes
In order for CMake to find your OpenGL installation on some Linux distributions, it may be necessary to run the following command to install the Mesa development packages:
sudo apt-get install libgl1-mesa-dev
The DevIL library can be installed via:
sudo apt-get install libdevil-dev
The Assimp library can be installed via:
sudo apt-get install libassimp-dev