All Projects β†’ iondune β†’ Ionengine

iondune / Ionengine

Licence: mit
3D graphics engine designed for rapid prototyping and extensibility

Projects that are alternatives of or similar to Ionengine

Cute headers
Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
Stars: ✭ 3,274 (+12996%)
Mutual labels:  opengl, math
Cglm
πŸ“½ Highly Optimized Graphics Math (glm) for C
Stars: ✭ 887 (+3448%)
Mutual labels:  opengl, math
Mango
mango fun framework
Stars: ✭ 343 (+1272%)
Mutual labels:  opengl, math
Jglm
Java OpenGL Mathematics Library
Stars: ✭ 44 (+76%)
Mutual labels:  opengl, math
Joml
A Java math library for OpenGL rendering calculations
Stars: ✭ 479 (+1816%)
Mutual labels:  opengl, math
Leaf3d
A lightweight 3D rendering engine based on modern OpenGL
Stars: ✭ 16 (-36%)
Mutual labels:  opengl
Glbind
Single file OpenGL API loader.
Stars: ✭ 23 (-8%)
Mutual labels:  opengl
Binary.dart
Utilities for working with binary data and bit manipulation in Dart.
Stars: ✭ 16 (-36%)
Mutual labels:  math
Pragmatapro
PragmataPro font is designed to help pros to work better
Stars: ✭ 887 (+3448%)
Mutual labels:  math
Pas Coogeo
Pas-CooGeo is coordinate geometry library for Pascal.
Stars: ✭ 25 (+0%)
Mutual labels:  math
Glerminal
A lightweight terminal made with OpenGL
Stars: ✭ 24 (-4%)
Mutual labels:  opengl
Nau
Nau - OpenGL + Optix 3D Engine
Stars: ✭ 18 (-28%)
Mutual labels:  opengl
Gleri
Network protocol, service, and API for using OpenGL remotely.
Stars: ✭ 16 (-36%)
Mutual labels:  opengl
Viz Engine
Work in progress: a new visualization engine
Stars: ✭ 23 (-8%)
Mutual labels:  opengl
Nya
[WIP] Game Engine written in Crystal
Stars: ✭ 16 (-36%)
Mutual labels:  opengl
Arcade
Easy to use Python library for creating 2D arcade games.
Stars: ✭ 928 (+3612%)
Mutual labels:  opengl
Fortran Sdl2
Fortran 2008 interface bindings to SDL 2.0
Stars: ✭ 18 (-28%)
Mutual labels:  opengl
Mobius Assignment
Staffjoy Suite (V1) Microservice - Shift Assignment Subject To Constraints
Stars: ✭ 23 (-8%)
Mutual labels:  math
Coord Rs
[deprecated] A simple, ergonomic vector mathematics crate for Rust
Stars: ✭ 18 (-28%)
Mutual labels:  math
Rpn
Math functional language, inspired by Hewlett-Packard Reverse Polish Notation (RPL) language
Stars: ✭ 17 (-32%)
Mutual labels:  math

Logo

ionEngine

ionEngine is a C++ rendering engine that I wrote while a student at Cal Poly. It was used for my master's thesis as well as some scientific visualization work. Development of ionEngine has been discontinued. I'm working on a Direct3D 11 port that is closed-source for the time being.

Overview

ionEngine is made up of several libraries:

  • ionCore: basic typedefs and boilerplate, some string and file helpers, standard library helpers
  • ionMath: vector classes for 2, 3, and 4 dimensions. A custom β€œcolor” class that encapsulates a vec3 or vec4 with implicit conversions between float and byte colors. Other geometric primitives including rays, lines, boxes, triangles, etc.
  • ionWindow: generic interface and helpers for operating system utilities, in particular window/context creation
  • ionGraphics: generic and modular interface for any rendering API, in particular for OpenGL
  • ionScene: scene interface that provides basic mesh loading, encapsulated renderable objects, and extensibility to add multipass rendering and other advanced functionality
  • ionScience: algorithm implementations useful for various scientific applications, including long/lat classes, marching cubes, ear clipping, volumetric data rendering

Features

ionEngine provides features through a large number of optional modules so that only the necessary components need to be included in a project.

Features included in ionEngine or additional modules are:

  • Component-entity based scene graph which is renderer-agnostic to maximize extendability
  • Forward and deferred lighting systems implemented using OpenGL
  • Bloom, SSAO, depth-of-field, and other post-processing effects
  • Volumetric utilities such as a shader-based raycast volume renderer and marching cubes implementation
  • GUI elements provided through dear imgui
  • Windowing and input provided through GLFW

Distribution

Source code is available on GitHub

Further information can be found at ionengine.io.

Documentation (generated with Doxygen) can be found at docs.ionengine.io.

License

ionEngine is licensed under the MIT license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].