/pmtech

Lightweight, multi-platform, data-oriented game engine.

Primary LanguageC++MIT LicenseMIT

pmtech

Build Status Build Status License: MIT Track on https://trello.com/b/05omR9Mj/igneous

Supported Platforms

  • Operating System: Windows (x64), macOS, iOS, Linux (x64), Android (wip).
  • Compilers: vs2017+, Clang 6+, Apple LLVM 9+, Gcc 7+.
  • Rendering Backends: Direct3D11, OpenGL3.1+, OpenGLES3+, Metal, Vulkan (wip).
  • Shader Langauges: HLSL Shader Model 3.0+, GLSL 330+, Metal, SPIR-V.

Features

  • Lightweight: Minimalistic, simple apis, shallow call stacks.
  • Data-Oriented: Instruction and data cache friendly design for optimal performance.
  • Multithreaded: Async render, physics, audio and entity component system.
  • Low-level abstractions: Input, gamepad, timers, threads, window, os, file system, etc.
  • Ecs: Entity component system and root motion animation system.
  • Pmfx: Scriptable renderer, shader, compute and post-processing system.
  • Tools: Graphical editor, volume texture / signed distance field generator.
  • Build Pipeline: project generation, compilation, asset building and packaging.
  • Examples: 30+ samples and unit tests.
  • Visit the wiki for more information.

Usage

  • Take a look at the getting started instructions.
  • All features in pmtech are demonstarted and unit tested through examples.

Media

Area Lights. Subsurface Scattering. Signed Distance Field Shadows. Renderer Data Driven, JSON Scriptable Renderer. 100 Lights using Forward, Deferred or Z-Prepass. Post Processing Data Driven, JSON Scriptable Post-Processing. Ray Marched Menger Sponges, Depth of Field, Bloom. Stencil Shadow Volumes. 64k Data-Oriented Entities, Multiple Shadow Maps, Texture Arrays. Vertex Stream Out Vertex Stream Out, Instanced Skinning, PBR, Oren Nayar, Cook Torrence.