Releases: ssell/OcularEngine
Alpha v0.5
Ocular Editor, etc.
... fill me out ...
Alpha v0.4
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
)
- D3D11 Uncompiled Loader (
- Uniforms
- Uniform Buffers
- Per Frame
- Per Camera
- Per Object
- Per Material
- Textures
- Texture2D
- DepthTexture
- RenderTexture
- NoiseTexture
Meshes
- Mesh
- Index Buffer
- Vertex Buffer
- Vertex Structure
- Simple Mesh Loading
- PLY ASCII (
.ply
)
- PLY ASCII (
- Simple Mesh Saving
- PLY ASCII (
.ply
)
- PLY ASCII (
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
- Scene Objects
Camera
: integrated with theCameraManager
and allows drawing toRenderTexture
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
Misc
- 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)
Alpha v0.3
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
Expanded Core Functionality
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
Alpha Core System Functionality
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.