-
Foundation
- New Digraph container
- Net Set container
-
Mathematics
- Fixed vector division bug
- Fixed orthographic matrix calculation
- Fixed identity flag when scaling transformations
-
Rendering
- Render Graphs
- Implemented basic Render Graph passes
- Enhanced Shader Graphs
- Crimild Shading Language utility functions
- New render queues for screen and opaque objects
- Render Target catalog
- Shareable Render Targets
- Deprecate RenderPass and subclasses
- Primitive catalogs and bindings
- Use layout annotations for GLSL attributes
- Improve vertex array objects usage in OpenGL
-
UI
- New UI components: UICanvas, UIFrame, UIBackground
- New UIFrameConstraint component for layout
-
Foundation
- New Queue container
- Removed Shared Object collections
- Containers improvements
-
Mathematics
- Fixed quaternion slerp interpolations
-
Rendering
- Shader Graphs support with OpenGL implementation
-
Animations
- Implemented new animation system
- Implemented blending and transitions for animations
- Implemented coding and cloning support for animations
-
Core
- Implemented coding support for Light class
-
Import
- Fixed quaternion angles when importing scenes
-
Audio
- Implement audio system using SDL_Mixer
- Deprecated SFML-based audio system
-
Simulation
- Implemented SDL-based simulation
- Deprecated GLFW-based simulation
- Fix component update pass
-
Emscripten
- Enable Emscripten support using CMake
- Enable audio support on web export
- Bundle assets
-
Build System
- Exposed executable target properties to client applications for custom properties specifications.
- Fixed OS X bundled resources
- Improved build times by maximizing forward declarations usage.
-
Mathematics
- Added infinity constants for scalars and vectors.
-
Foundation
- Added new containers for arrays, maps, queues and stacks using new C++11 features.
- Added ThreadModel policy.
- Added dynamic casting utility for SharedPointer class.
- Added ObjectFactory class.
- Added type aliases.
- Added unit test cases.
- Deprecated old collection implementations.
-
Core
- Added new Coding system, including new Codable, Encoder and Decoder classes.
- Added MemoryEncoder and MemoryDecoder classes for in-memory coding.
- Added FileEncoder and FileDecoder classes for loading and saving encoded data.
- Added coding support for most of the Core classes.
- Added cloning capabilities to NodeComponent and derived classes.
- Added anchors for text alignment.
- Added Console commands.
- Added unit test cases.
- Added module initialization function.
- Deprecated Stream and related classes.
- Deprecated SceneBuilder and related class.
*Behaviors * Added BehaviorTree class. * Added BehaviorContextValue class. * Moved BehaviorController to crimild::behaviors namespace. * Added coding support for main classes. * Added new unit test cases.
-
Navigation
- Added coding support for main classes.
-
Particle System
- Added coding support for main classes.
-
Rendering
- Added getters for audio source properties like duration and channels
- Added callback to get data chunks for audio sources
- Added coding support for main classes.
-
Audio
- Added coding support for main classes.
-
Simulation
- Removed concurrent component update for scene nodes.
- Added method to retrieve a System instance by name.
- Added coding support for scene loading.
-
Importer
- Updated Assimp to v4.1.0
-
Scripting
- Added LuaEncoder and LuaDecoder classes for loading and saving encoded data.
- Added flag CRIMILD_ENABLE_SCRIPTING to detect whether or not the scripting module is enabled.
- Deprecated LuaSceneBuilder class
- Updated Lua to v5.3.14
- Added unit test cases.
-
iOS
- Added audio classes using native frameworks
- Updated project files
-
Math
- New LineSegment class
- Minor fixes
-
Core
- Fixed particle sorting
-
Rendering
- Minor fixes
-
Audio
- New audio-related classes
- Implemented SFML audio classes
- Removed deprecated audio classes
-
Navigation
- Compute edge sliding vector
- Improved navigation component
-
Behaviors
- Implemented Behavior Tree base classes
- Implemented reusable behaviors
-
Scripting
- Implemented builders for core classes
-
Debug
- Improved debug tools for navigation meshes
-
Math
- Compute inverse transformation
-
Core
- Implemented version control for streams
- Allow for time offsets when specifying skin animations
- Allow particle system to be paused and resumed
- Fixed UISystem
- Fixed invalid camera problem when picking
- Allow the console to use the command history
- Fixed particle system emition rate
-
Rendering
- Composite Render Passes
- Fixed ambient light calculation in standard shader
- Shadows improvements
- Use OpenGL Core Profile 3.3
-
Navigation
- Implemented Navigation Meshes
- Load navmeshes from OBJ files
-
Scripting
- Allow nodes to define a radius for the bounding volume in lua scripts
-
Debug
- Improved debug facilities
-
Foundation
- Define platform-independent types to be used throughout the engine
-
Math
- Implemented time scales for all clocks
- Improved random number generator
-
Core
- Implemented modular particle system
- Implemented simple interactive console for simulations
- Improved streaming support on most classes
- Improved text support
-
Debug
- Improved Profiler
- Improved render tools
- Implemented debug text rendering
-
Rendering
- Implemented filters for textures
- Improvements on shadow mapping
-
Scripting
- Implemented generic object builder for Lua parser
-
Scripting
- Fixed initial state for cameras in script builder
-
Rendering
- Fallback to OpenGL ES 2 on Android
- Fixed occluder check when computing render queue
-
Math
- Implemented euler angle conversion for quaternions.
- Implemented helper methods to get world up vector in local space
-
SceneGraph
- Improved Switch
- Bind lights only if enabled
-
Simulation
- Update scene in main thread, nodes in parallel
- Dispatch mouse motion event during input's update phase
- Retain scene when doing update
- Fixed concurrency bug in AssetManager
- Added basic joystick support
-
Scripting
- Added helper method to get a child evaluator
-
Rendering
- Added support for render to texture using an offscreen camera
- Fixed light type bug in OpenGL
- Improved Depth of Field image effect
- Improved Vignette image effect
-
Build System
- Fixed CMake script for file extraction
- Fixed build system for Visual Studio
-
Math
- Improved Clock
-
Core
- New Job System for concurrency
- Removed old task manager
- New logging facilitites
- Implemented BillboardComponent class
-
Rendering
- Improve render queues to sort objects based on type
- Add compare functions to DepthState
- Removed deprecated render passes
- Promote raytracing-related code to a core module
- Fixed viewport-related bug when beginning a frame
-
iOS
- Updated iOS project
-
Math
- Return best match in intersection test
- Implemented pow function in numeric
- Implemented times function in Matrix and Vector to perform element-wise multipliciation
- Added method in Ray class to compute interpolated point in ray
- Fixed polynomial root solver bug
- Added helper constants in Vector class for known vectors
- Improved numerical methods
- Fixed Quaternion SLERP interpolation
- Allow transformations to be created form a 4x4 matrix
-
Core
- Implemented NonCopyable classes (replacing CRIMILD_DISALLOW_COPY_AND_ASSIGN macro)
- Implemented simple low-overhead RTTI facilities
- Improved SkinnedMesh animation
- Implemented streaming for objects in a scene
- Fixed concurrency problems with render queues.
- Fixed cloning for skinned mesh
- Fixed FileSystem base directory bug
- Check if message dispatcher instances are valid before invoking them
- Implemented ArcPrimitive
- Save skinned mesh (if any) when updating render state for a scene
- Avoid discarding groups on culling pass.
- New particle system
- Implemented progress callback for animations. Fixed time for animation reset
-
Rendering
- Implemented StandardRenderPass
- Deprecated ForwardRenderPass
- Deprecated BasicRenderPass
- Implemented PostRenderPass for post-processing
- Moved render passes to their own folder
- Implemented ColorMaskState for occluders
- Create and configure the screen buffer as early as possible
- ForwardRenderPass will compute shadow maps in all platforms
- Fixed shadow map shaders
- Generate auxiliary FBOs on Renderer setup and store them in asset cache
- Use GLEW from sources instead of as a submodule
- Fixed directional lighting rendering issue
- Improved debug render tools
- (Experimental) Metal support on iOS/tvOS
-
Simulation
- Clear AssetManager when stopping a simulation
- Improved deinitialization for simulation and subsystems
- Implemented axis state in input facilities
-
Scripting
- Enable/Disable verbose logging for scripting from CMake
- Improved light support on lua scene builder
- Build new particle system from Lua script
- Enhanced Lua builder to support physical entities
-
Audio
- No changes
-
Physics
- Fixed ground check for rigid bodies
- Implemented function to detect ground collisions in rigid bodies
- Implemented standard colliders for physical objects
- Improved rigid body configuration for physical objects
- Allowed to apply linear velocity to bodies during simulation
Testing: * Fixed existing tests * Implement new tests for streaming * Modified CMake scripts to include GTest cases
-
Core
-
Fixed aspect calculation for main camera
-
Added dump debug tool
-
Added cloning mechanism for bounding volumes
-
Rendering
-
Added flag to textures in order to support different wrap modes
-
Avoid switching rendering states when the queues are empty
-
Wait for message to present next frame
-
Fixed bug in render queue reset
-
[iOS] Create frame buffer objects in with correct resolution
-
[iOS] trigger frame presentation after binding default FBO
-
[OpenGL] Improved frame buffer object catalog to support iOS
-
[OpenGL] Improved error logging
-
[OpenGL] Fix screen shaders to work on iOS
-
[OpenGL] Improved Image Effects to support iOS
-
Simulation
-
Compute aspect ratio automatically for Main Camera
-
Allow custom configurations for TaskManager
-
Fixed integration error in Update system
-
Decreased accumulation threshold to at most 4 frames in update system
-
Clear AssetManager cache before loading a scene
-
Add tools for getting the documents directory
-
Make sure there is a main camera before starting components
-
Scripting
-
Use RTTI for builders in Lua Scene Builder
-
Enable on-demand logging
-
Clone nodes in lua builder
-
Audio
-
Enable OpenAL in iOS
-
Infrastructure
-
Added CMake tool for easier app configuration
-
Added CMake tool for easier app configuration
- Build System
- Fixed Windows (MSYS) build
- Fixed Android build
- Misc
- Removed old COLLADA files
- Foundation
- Implemented small object allocator
- Implement explicit ownership for objects
- Math
- Improved random number generation
- Renamed TransformationImpl to Transformation (and viceversa)
- Rendering
- Move shader code to separated files (Ongoing)
- Move Renderer object cache to AssetManager
- Improve image effect processing while rendering frames
- Handle S and D buffers in base RenderPass class
- [OpenGL] Unify OpenGL renderers (Desktop and Mobile)
- [OpenGL] Increase GL version to 4 for all desktop shaders
- [OpenGL] Deprecate GLES code in favor of new renderer
- [OpenGL] Implemented custom GLSL prefixes with macros for each platforms
- [OpenGL] Fixed normals mapping artifacts in forward shaders
- Scene Graph
- Improve text support and tools
- Improved Text and Font classes to automatically use SDF fonts if avaiable
- Add flag to Camera class to enable/disable culling (default: enabled)
- Allow node retrieval from parents using names
- Implemented shortcut for component retrieval from other components
- Simulation
- Parallel architecture for simulation
- Implemented simulation systems
- Enforce frame synchronization with messages
- Improved scene loading with streaming system
- Removed simulation tasks in favor of systems
- Loaders
- Improve OBJ loader
- Fixed vertex tanget computation in OBJ loader
- Scripting
- Lua scene builder
- Misc & Tools
- Support MinGW in Windows
- Improved platform detection and macros