Skip to content

Version 0.12.0

Compare
Choose a tag to compare
@DragonJoker DragonJoker released this 19 Mar 23:00
· 573 commits to master since this release

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