A simple real time rendering engine using OpenGL and C++.
This project is not meant to be a rendering engine that someone will use for real applications, but is meant to someone that wants to learn the basic of a rendering engine. For this purpose the code is well documented and there is the wiki to explain the main concepts.
Black and white
Blur
Depth
- Visual Studio 2022 (may work with older version)
- The Visual Studio C++ Package
- Install the vcpkg package manager (official instruction here but don't skip the 3th step):
- Clone the repo
git clone https://github.com/Microsoft/vcpkg.git
- Run .bat file inside the cloned repo:
.\vcpkg\bootstrap-vcpkg.bat
- The previous step generated the
vcpkg.exe
file. To use directly in the command line add the folder containing the exe* in the PATH (here is a tutorial to add a directory to the PATH)
- Clone the repo
- After cloning this repo open a command prompt in
\Engine3D\Engine3D
and runvcpkg install
this command will download and install all the dependences inside the.\vcpkg_installed
folder inside the project - Open the file solution
Engine3D.sln
- Go to the setting of the
Engine3D
project - Change the value of
Configuration Properties -> Debugging -> Working Directory
to$(ProjectDir)\WorkingDirectory
- Open the Engine3D project proprieties
- Change the propriety Working Directory to
$(ProjectDir)\WorkingDirectory
- Start the Engine3D project
If you want to run a different scene you can go to main.cpp
file and uncomment the scene you want.
There are 2 projects in the Visual Studio .sln
file: Engine3D and EngineEditor.
This is the core of the engine written in C++.
Libraries:
- GLEW Utilities of OpenGL.
- GLFW To handle the inputs and the OpenGL context.
- FreeImage To load the image assets. Licensed under the FIPL license.
- FreeType To render glyphs.
- GLM To simplify math.
The project is composed by those filters:
Engine
The rendering engine.Shaders
Shaders used in the engine.Resources
Resources used in the test game.Examples
Example scenes.
This is the editor of the engine made in C#. The main functionality is the conversion of a .obj
mesh in the custom .msh
format used by the engine.
This project is licensed under the MIT License.