Version 0.12.0
Important Changes
- Now using RenderGraph to build a frame graph.
- Now using bindless textures.
- Implemented MultiDrawIndirect.
- Implemented a loading screen.
- Implemented texture animations (tile maps and transforms).
- Implemented scene node animations.
New features
Generic plugins
- Added DrawEdges plugin, to detect and draw edges.
- Implemented basic ocean rendering plugin.
- Implemented FFT based ocean rendering plugin.
- Implemented water rendering.
- Implemented toon materials collection.
ToneMapping plugins
- Added ACES tone mapping plugin.
Tools
- Added HeightMapToNormalMap and fixed normal maps generation.
Modifications
CastorUtils
- Added support for tile maps.
- Added conversion from array map to tile map
- Added AsyncJobQueue, based on ThreadPool.
- Added GliImageWriter.
- Added optional FreeImageLoader, when FreeImage library is found.
- Added compression to BC1/BC3 to image loading, using cvtt.
- Created SpinMutex implementation
- TextWriter now writes to a castor::StringStream.
- Image loading now also generates mipmaps.
- Integrated additional parsers.
- Reworked FileParser to parse files in two steps.
Castor3D
- Added frustum culling for point lights shadow maps.
- Added support for multiple rendering devices.
- All post effects are now created in the render target, to be enabled or disabled at will.
- Allowed scene import through mesh importer.
- Added Blinn-Phong pass.
- Generalised shaders, using intermediate classes : LightingModel, ReflectionModel and LightMaterial.
- Added TextureCache, and using it to merge pass textures.
- Added a way to have non pickable nodes.
- Added rotate mesh options to importers.
- Added support for a secondary UV set.
- Added support for custom additional render technique passes.
- Added support for hull/domain shaders in scene render passes.
- Added support for passes without lighting.
- Added support for safe bands in Camera.
- Allowed textures components remapping on scene import.
- Depth prepass now also writes normals.
- Enabled LPV for point lights, and fixed spot lights'.
- Events can now be skipped.
- Merged PBRMR and PBRSG lighting models to a single one, internally.
- Objects can now be excluded from culling tests.
- Removed gamma correction for textures and materials, images use srgb formats when needed.
- Removed specific PassBuffers.
- Reworked Pass text writing and parsing.
- Moved SSS Profiles to their own shader buffer.
CastorGui
- Introduced style classes to handle that.
DiamondSquareTerrain
- Allowed random seed disabling (for testing).
- Now tiling UVs
AssimpImporter
- Improvements regarding materials.
- Improvements regarding animations processing.
- Added scene nodes and light sources import.
GuiCommon
- Added custom render passes configuration.
- PostEffects configuration has been added to the tree.
- Removed materials list and some duplicates in scene view.
Fixed Bugs
CastorUtils
- Fixed Matrix2x2 and Matrix3x3 inversion.
- Fixed aligned alloc on win32.
Castor3D
- Fixed a crash when skinning keyframe is not found.
- Fixed background pass, regarding fog.
- Fixed interaction between indirect diffuse and reflections.
- Fixed crash with morphing that could happen on release builds
- Fixed import/export of morphing animations.
- Fixed indirect lighting handling in forward passes.
- Fixed point shadow maps.
- Fixed spot shadow maps.
- Fixed render loop cleanup events processing.
- Fixed render target creation, to have the right size and format.
- Fixed swapchain reset while RenderWindow is initialising.
- Fixed tone mapping switch.
GuiCommon
- Fixed a crash in LanguageFileParser.
- Fixed crash on light GI type change
- Fixed crashes when trying to load hdr images.
- Fixed texture properties display.
Full Changelog: v0.11.0...v0.12.0