Castor3D – Version 0.10.0

PBR rendering support, implemented both Metallic and Specular workflows.

Features
CastorUtils

  • Renamed namespace Castor to castor.
  • Added ChangeTracked and GroupChangeTracked classes, allowing to track changes to a member variable.
  • Renamed CubeBox and SphereBox to BoundingBox and BoundingSphere.
  • Splitted Colour in two classes: RgbColour and RgbaColour.
  • PlaneEquation is no more a template class.
  • Created a buddy allocator class: BuddyAllocator.

GlslWriter

  • GlslWriter class now holds the shader program inputs, to generate a glsl::Shader source.

Castor3D

  • Renamed namespace Castor3D to castor3d.
  • Emissive in a material is now stored on a single floating point (emissive maps still hold a colour though).
  • Implemented Physical Based Rendering, using both metallic/roughness and specular/glossiness workflows.
  • RenderPipeline now also holds the shader program.
  • Implemented Screen Space Subsurface Scattering (without backlit transmittance, though).
  • The light pass result is now stored in two render targets: diffuse and specular.
  • Vertex buffers now use a buddy allocated pool.
  • Shadow mapping now uses variance shadow maps.
  • Transparent meshes are now rendered using Weighted Blended OIT rendering.
  • Screen Space Ambiant Occlusion has been improved, using Scalable Ambiant Obscurance implementation.
  • Parallax Occlusion mapping is implemented.
  • Reflection and refraction mapping have been implemented.
  • Deferred rendering has been fully integrated to the engine, for opaque objects rendering.
  • Created components for submeshes, to move functionalities out of Submesh, and make it more flexible.
  • Rendering now uses a depth prepass.
  • Created ColourSkybox, to handle background colour and skyboxes in the same way.
  • Created ShaderBuffer class, to be able to handle SSBOs or TBOs in a similar way, choosing the most appropriate one, depending on running machine.

Generators

  • Created DiamondSquareTerrain plugin.

Generic

  • Events from CastorGUI are now forwarded to the user.

Importers

  • Removed almost every importer plugin, keeping only Assimp, OBJ, and PLY importers.

PostEffects

  • Created SMAA post effect.
  • Created Kawase Light Streaks post effect.
  • Created Film Grain post effect.

RenderSystems

  • Updated GlRenderSystem to support the features provided by Castor3D.

Techniques

  • Technique plugins have been completely removed.

Tone mappings

  • Created Uncharted 2 tone mapping plugin.

Fixes
Castor3D

  • Fixed bounding boxes for animated meshes and skinned meshes.
  • Repaired an reenabled frustum culling.
  • Fixed alpha rejection.

Downloads

Binaries

Castor3D Installer (Windows x86).
Castor3D Installer (Windows x64).
Castor3D Installer (Debian amd64).

PBR rendering VS SSR rendering:
687474703a2f2f647261676f6e6a6f6b65722e6769746875622e636f6d2f436173746f7233442f696d672f5061726b2d4c65676163792d736d616c6c2e706e67

Terrain generation using Diamond square algorithm:
DiamondSquareTerrain

Reflection/Refraction map:
ReflectionRefraction

No SMAA VS SMAA:
SMAA_Comparison

Subsurface Scattering:
SSSSS_Comp