@ssell ssell released this Jul 14, 2016 · 55 commits to master since this release

Assets 2

Ocular Editor, etc.

... fill me out ...


@ssell ssell released this Jan 6, 2016 · 180 commits to master since this release

Assets 2

Ocular Engine v0.4 adds the core Graphics library (Ocular::Graphics) along with a Direct3D 11 implementation (OcularD3D11). It also features numerous additions and fixes to other systems, especially the Scene system.

After more than a year, with over 100,000 lines of code across 322 commits, Ocular can finally be called a Rendering Engine.

DirectX 11

  • Initial version of the OcularD3D11 library that implements a fully-working (albeit basic) Direct3D 11 rendering system

Material Subsystem

  • Materials
    • Combination of Shaders, Uniforms, and Textures
    • Material file format (.omat) for saving and loading
  • Shaders
    • Vertex Shader
    • Geometry Shader
    • Fragment (Pixel) Shader
    • PreTessellation (Hull) Shader
    • PostTessellation (Domain) Shader
  • Shader Loaders
    • D3D11 Uncompiled Loader (.hlsl)
  • Uniforms
    • Uniform Buffers
    • Per Frame
    • Per Camera
    • Per Object
    • Per Material
  • Textures
    • Texture2D
    • DepthTexture
    • RenderTexture
    • NoiseTexture


  • Mesh
    • Index Buffer
    • Vertex Buffer
      • Vertex Structure
  • Simple Mesh Loading
    • PLY ASCII (.ply)
  • Simple Mesh Saving
    • PLY ASCII (.ply)

General Graphics System

  • Graphics Driver for generic access to API-specific actions
  • Render State
    • Depth Stencil State
    • Blend State
    • Raster State
  • Viewport
  • Renderables
  • Simple scene rendering (no dedicated renderer yet)


  • Scene Objects
    • Camera: integrated with the CameraManager and allows drawing to RenderTexture objects
  • Routines
    • FreeFlyController: can be attached to objects to allow keyboard movement and mouse looking
  • Renderables
    • MeshRenderer: renders simple visuals consisting of a single mesh and single material


  • Fully working input system (mouse was not previously working)
  • Fixed Windows message handling so that the window can now be properly moved, sized, etc. (was actually caused by raw input setup; see commit 7cd175b)
  • Numerous miscellaneous bug fixes and improvements
  • Addition of GLM dependency for certain Math library implementations (Matrix3x3, Matrix4x4, Quaternion). This was done for peace of mind with the critical underlying maths, and for easier integration of OpenGL 4 in the nearish future.
  • Addition of pugixml dependency for XML reading and writing (currently only used in .omat handling, but will be used more extensively in the future)

@ssell ssell released this Oct 9, 2015 · 265 commits to master since this release

Assets 2

Ocular Engine v0.3 continues to expand upon the non-rendering capabilities, introducing a powerful scene system, various intersection tests, and keyboard/mouse input handling.

This is the final purely non-rendering release, as v0.4 will begin work on the Graphics interface library and DirectX11 implementation.

Input Handling

  • InputHandler
  • Win32 Input
    • Raw Keyboard
    • Raw Mouse

Scene System

  • SceneManager
  • Scene
  • SceneObject
    • Routine
    • Renderable
  • SceneTree
    • BVH Tree

Intersection Testing

  • Bounding Volumes
    • Sphere
    • AABB
  • Frustum
  • Plane
  • Ray

@ssell ssell released this May 24, 2015 · 339 commits to master since this release

Assets 2

The Ocular Engine v0.2 provides an expansion of the core non-rendering functionality introduced in v0.1. The following features were added in v0.2:

Resource System

  • Resource, ResourceManager, ResourceLoader, ResourceSaver, etc.
  • Texture Loading
    • BMP
    • TGA
    • PNG
  • Texture Saving
    • BMP
    • PNG

Updated Math Library

  • Quaternions
  • Euler Angles
  • Conversion between Matrices, Quaternions, and Eulers
  • Transforms
  • Additional PRNGS
    • Mersenne Twister (19937)
    • Mersenne Twister (127)
    • PRNGs compatible with STL distributions
  • Noise Generation
    • Perlin
    • Simplex
    • Wavelet

Additional Utilities

  • Additional String Utilities
  • System Information
  • Endianness Conversion
  • Hash Generation

@ssell ssell released this Dec 28, 2014 · 427 commits to master since this release

Assets 2

The Ocular Engine v0.1 provides a multitude of core non-rendering capabilities. These features are a requisite part of any engine, despite not having any direct connection to rendering.

This will allow future milestones to focus primarily on development of the rendering engine without having to go back and implement needed miscellaneous systems.

Future versions will expand support to other operating systems (Linux, OS X) but v0.1 focuses on Windows.