Install git
Macos:
brew install git
Fetch the repository
git clone --recursive -j8 https://github.com/Middle-Europe-Productions/MEP-3D.git
Install cmake:
Macos:
brew install cmake
Creating a project:
cmake . --preset <project>
Build a project:
Goto project directory.
cmake --build --preset "<project>"
Creating project:
// Listing all of the presets:
cmake --list-presets
// Debug:
cmake . --preset volume-rendering-msvc-d
// Release:
cmake . --preset volume-rendering-msvc
Building project:
// Listing all of the build presets:
cmake --build --list-presets
// Debug:
cmake --build --preset "volume-rendering-msvc-d"
// Release:
cmake --build --preset "volume-rendering-msvc"
Creating project:
// Listing all of the presets:
cmake --list-presets
// Debug:
cmake . --preset volume-rendering-ninja-d
// Release:
cmake . --preset volume-rendering-ninja
Building project:
// Listing all of the build presets:
cmake --build --list-presets
// Debug:
cmake --build --preset "volume-rendering-ninja-d"
// Release:
cmake --build --preset "volume-rendering-ninja"
Versioning consists of:
- major - Major engine release version
- minor - Project release number
- patch - Project patch version
- suffix - Project suffix
- Using Unix build script
./build/examples/run_mep_unix.sh -t/--target <target> <flags>
or from the appropriate directory
run_mep_unix.sh <target> <flags>
- Using MSVC build script Open the visual studio developer console or set environment variables.
cd scripts
run_mep_msvc.bat -t/--target <target> -m/--mode <mode=Debug> <flags>
Mep engine allows default chromium flags, for example:
-v=2
or
--vmodule=*<file_name>=2*"
For more info please check this link link.
The engine allows runtime features. They can be toggled by defines in the build system, during the program runtime, or through the command line. Example:
--feature:use-engine-data-monitor=true
- Window creation using GLFW
- Projection view
- Mesh handler with UV
- Key input observer integrated to window
- Image loading using STB
- Texture handler integrated with mesh
- Camera with build-in key input handling
- Inter-layer communication (ILC) - a mechanism that allows communication between layers using the JSON interface.
The supported lighting model is Phong lighting. It consists of three types of lightning applied to a given object.
- Ambient light - simulation of a light bouncing from another object.
- Diffuse light - simulates from off of light following the angle of light.
- Specular light - relays on a user's position. It is a simulation of a direct reflection of a light coming to the viewer's eye.
* Directional light
* Point light
* Stop light
The engine currently supports assimp library as its main object loader.
Objects are always loaded in the dedicated resource thread pool.
arm64: problem with building assimp