Skip to content

GLEW/GLFW-based framework oriented on the three-dimensional voxel graphics. A project is a tool that is planned to be a part of the MEP-Core.

Notifications You must be signed in to change notification settings

Middle-Europe-Productions/MEP-3D

Repository files navigation

MEP-3D

How to start?

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

Preaparing build

Creating a project:

cmake . --preset <project>

Build a project:

Goto project directory.

cmake --build --preset "<project>"

Volume Rendering project:

MSVC (Windows):

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"

Ninja (cross-platform):

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

Versioning consists of:

  • major - Major engine release version
  • minor - Project release number
  • patch - Project patch version
  • suffix - Project suffix

Building scripts - Deprecated

  • 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>

Flags

Mep engine allows default chromium flags, for example:

-v=2
or
--vmodule=*<file_name>=2*"

For more info please check this link link.

Features

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

Available tools

  • 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.

Avalible lightning

Phong lightning

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.

Type of light supperted in the engine:

* Directional light
* Point light
* Stop light

Model loading

The engine currently supports assimp library as its main object loader.

Build in thread pool

Objects are always loaded in the dedicated resource thread pool.

Known issues

arm64: problem with building assimp

About

GLEW/GLFW-based framework oriented on the three-dimensional voxel graphics. A project is a tool that is planned to be a part of the MEP-Core.

Resources

Stars

Watchers

Forks

Packages

No packages published