Need help with Castor3D?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

180 Stars 8 Forks MIT License 677 Commits 20 Opened issues


Multi-OS 3D engine.

Services available


Need anything else?

Contributors list

# 248,056
701 commits

Build status


Castor3D is a 3D engine written in C++ 17.
It works on Windows and on GNU/Linux.
It relies on Ashes as a rendering API, allowing Vulkan, OpenGL and Direct3D 11.


  • Deferred rendering.
  • Normal mapping.
  • Parallax Occlusion mapping.
  • Screen Space Ambient Occlusion (using Scalable Ambiant Obscurance).
  • Shadow Mapping (allowing to choose between Raw, PCF or Variance Shadow Maps).
  • Reflection/Refraction Mapping.
  • PBR rendering (Metallic and Specular workflows), and Phong/Blinn-Phong rendering.
  • HDR rendering with various tone mapping operators.
  • Screen Space Subsurface Scattering (without backlit transmittance yet).
  • Volumetric Light Scattering for directional light source projecting shadows.
  • Cascaded Shadow Maps for directional light sources.
  • Global Illumination through Ligh Propagation Volumes (layered or non layered, with or without geometry injection), or through Voxel Cone Tracing.
  • Frustum culling.
  • Scene graph.
  • Render graph.
  • Modular architecture through plug-ins.
  • Shaders are generated automatically from material and pass configuration.
  • Shaders are writable directly from C++ code.

Implemented Plug-ins

Importers - ASSIMP: Multiple format mesh importer. - PLY: Stanford Polygon library mesh importer.

Dividers - Loop subdivision surfaces. - Phong tessellation. - PN-Triangles surfaces.

PostEffects - Bloom: HDR Bloom implementation. - DrawEdges: Detects and renders edges, based on normal, depth, and or object ID. - FilmGrain: To display some grain on the render. - GrayScale. - LightStreaks (using Kawase Light Streaks). - FXAA Antialiasing. - SMAA Antialiasing (1X and T2X so far). - Linear Motion Blur.

Generators - DiamondSquareTerrain: To generate terrains inside Castor3D scenes, using diamond-quare algorithm.

Generic - CastorGUI: To build GUIs inside Castor3D scene files. - ToonMaterial: A toon material (to be combined with DrawEdges plugin).

ToneMappings - LinearToneMapping: Default tone mapping. - HaarmPieterDuikerToneMapping: Haarm Pieter Duiker tone mapping. - HejlBurgessDawsonToneMapping: Hejl Burgess Dawson tone mapping. - ReinhardToneMapping: Reinhard tone mapping. - Uncharted2ToneMapping: Uncharted 2 tone mapping.

Other applications

  • CastorViewer: A scene viewer based on Castor3D.
  • CastorMeshConverter: A converter from various mesh files to Castor3D mesh format.
  • CastorMeshUpgrader: Upgrades from earlier versions of Castor3D mesh format to the latest one.
  • ImgConverter: Allows you to convert any image file type to XPM or ICO.


Sponza Cerberus Park, Legacy Park, PBR Nyra, PBR SanMiguel, PBR


You can rech me on the Discord server dedicated to my projects: DragonJoker's Lair

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.