https://github.com/aermoss/vega
A simple 3D game engine written in C++ using OpenGL.
https://github.com/aermoss/vega
cpp game-engine game-engine-3d opengl opengl3 simple-game-engine
Last synced: about 1 month ago
JSON representation
A simple 3D game engine written in C++ using OpenGL.
- Host: GitHub
- URL: https://github.com/aermoss/vega
- Owner: Aermoss
- License: mit
- Created: 2022-08-18T14:50:50.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-25T18:34:48.000Z (about 1 year ago)
- Last Synced: 2025-04-14T15:15:03.923Z (about 1 month ago)
- Topics: cpp, game-engine, game-engine-3d, opengl, opengl3, simple-game-engine
- Language: C++
- Homepage:
- Size: 76.6 MB
- Stars: 40
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VEGA Engine
A simple 3D game engine written in C++ using OpenGL.# Examples
## Creating a window.
```c++
#includeint main(int argc, const char* argv[]) {
vega::VEGAWindow window(1200, 600, "VEGA Window");while (!window.shouldClose()) {
window.pollEvents();
window.clear();
window.checkErrors();
window.swapBuffers();
}
window.destroy();
return 0;
}
```## Rendering a model.
```c++
#includeint main(int argc, const char* argv[]) {
vega::VEGAWindow window(1200, 600, "VEGA Window");vega::VEGAShader shader(
vega::VEGAReadFile("shaders/default.vert"),
vega::VEGAReadFile("shaders/default.frag")
);vega::VEGACamera camera(&window, 45.0f, 0.1f, 1000.0f);
vega::VEGAModel model("res/models/crow/scene.gltf");
shader.use();
glUniform4fv(shader.getUniformLocation("lightColor"), 1, (float*) glm::value_ptr(glm::vec4(1.0f, 1.0f, 1.0f, 1.0f)));
glUniform3fv(shader.getUniformLocation("lightPosition"), 1, (float*) glm::value_ptr(glm::vec3(0.5f, 0.5f, 0.5f)));
glUniform1f(shader.getUniformLocation("ambient"), 0.2f);
shader.unuse();while (!window.shouldClose()) {
window.pollEvents();
camera.processInputs();
window.clear();
model.render(&shader, &camera);
window.checkErrors();
window.swapBuffers();
}model.destroy();
shader.destroy();
window.destroy();
return 0;
}
```