Vortex 3D Engine

The Vortex 3D Engine is my custom 3D Engine built for the specific objective of rendering native cross-platform realtime 3D graphics. Vortex can be seen as a set of proven, reusable components that enable delivering 3D applications and games on a disparate array of platforms, including iOS, Android, Windows, Linux and Mac.

Note: For an up-to-date reference to all the work that has been going on, please check out the Vortex-Engine tag.

Modern Deferred Renderer

Screenshots of the modern GL 3.3/GLES 3.0 renderer.

Point Lights in Vortex Engine 3.0's Deferred Renderer. Sponza scene Copyright (C) Crytek.
Point Lights in Vortex Engine 3.0’s Deferred Renderer. Sponza scene Copyright (C) Crytek.

 

Multiple Realtime Lights rendered by Vortex V3.
Multiple Realtime Lights rendered by Vortex V3.

 

The Bouncy Ball Playground, which consists in a ball animated from a Lua script, running on iPhone from a Vortex Archive.
The Bouncy Ball Playground, which consists in a ball animated from a Lua script, running on iPhone from a Vortex Archive.

Legacy GL 2.0 Renderer (Deprecated)

The screenshots below were taken using the old Vortex programmable-pipeline.

This pipeline helped us lay important parts for the foundation of the (much more powerful) deferred renderer we use nowadays (vtx::ShaderProgram, vtx::Framebuffer, etc where developed here).

A Lightscattering Implementation powered by the Vortex 3D Engine.

The Vortex 3D Editor is a custom-built editor for the Vortex 3D Engine that can be used for visually building scenes and 3D experiences.

Notes on the development of the Vortex 3D Engine, as well as the Computer Graphics techniques behind it can be found in the Computer Graphics page.

Some of the most prominent features of Vortex Engine include:

  • Fully developed in conformant C++11, completely object-oriented.
  • Light-weight and portable.
  • Non-intrusive and flexible.
  • Minimal external dependencies.
  • Dynamic scene management.
  • Automatic resource life-cycle management through reference counting.
  • Rendering through the Fixed and the Programable pipelines.
  • Supports Desktop OpenGL, OpenGL ES 1.1 and OpenGL ES 2.0.

The following scenes were rendered using Vortex 3D:

Vortex Framebuffer Object Support: a knight is rendered on a texture that is then mapped on a cube. All rendering is done on the GPU, avoiding expensive copies to RAM.
A demonstation of Vortex’s Stencil Shadow Volumes implementation: A Knight being lit by a green light, casting a shadow on a tiled floor.
Angel with Generated Normals
Automatic Normal Generation: an Angel Model is lit using normal data generated automatically by the Vortex Engine.
Dual Pipeline support: a Comparison of the Rendering Pipelines available in Vortex Engine. The image on the left represents the Fixed Pipeline. The image on the right represents the Programmable Pipeline.