Castor3D  0.11.0
Multiplatform 3D engine
Castor3D

Castor3D est un moteur 3D multi-plateformes écrit en C++17.
Il fonctionne sur les plateformes GNU/Linux et Windows.
Il est basé sur l'API de rendu Ashes et supporte donc les API OpenGL, Direct3D 11 et Vulkan.
Le projet en lui-même est compilable sur les plateformes supportées en utilisant CMake (Générer Castor3D).


Fonctionnalités

  • Deferred rendering pour les objets opaques
  • Weighted Blended rendering pour les objets transparents.
  • Normal mapping.
  • Shadow Mapping (avec choix entre Raw, PCF ou Variance Shadow Maps).
  • Parallax Occlusion Mapping.
  • Screen Space Ambiant Occlusion (en implémentant le Scalable Ambiance Obscurance).
  • Reflection/Refraction Mapping.
  • Rendu PBR (Metallic/Roughness et Specular/Glossiness) et rendu Phong traditionnel.
  • Rendu HDR avec application de divers opérateurs de tone mapping.
  • Screen Space Subsurface Scattering (sans la backlit transmittance pour l'instant).
  • Volumetric Light Scattering pour la source directionnelle, si elle projette des ombres.
  • Cascaded Shadow Maps pour la source lumineuse directionelle.
  • Global Illumination, via les Light Propagation Volumes ou le Voxel Cone Tracing.
  • Frustum culling.
  • Graphe de scène.
  • Architecture modulaire, à base de plug-ins.
  • Génération automatique de shaders, en fonction de la configuration du pipeline.
  • Ecriture du code du shader directement depuis le code C++.
  • Scènes décrites dans un format texte facilement compréhensible et extensible. (Format de fichier CSCN)
  • Rendu synchrone (timers) ou asynchrone (thread).



Plugins

  • Importer : Ils permettent l'ajout de l'importation de nouveaux formats de fichiers de maillages.
  • Divider : Ils permettent d'implémenter des algorithmes de subdivision de maillage, à la construction (pas au niveau LOD).
  • PostEffect : Ils permettent l'application d'effets post-rendu.
  • Generator : Ils permettent de générer des maillages ou textures, de manière procédurale.
  • Generic : Ils ont pour but d'étendre les fonctionnalités globales du moteur.
  • ToneMapping : Ils permettent de définir de nouveaux opérateurs de tone mapping.


Importers

  • AssimpImporter, utilisant la bibliothèque assimp pour l'import d'une grande variété de formats.
  • PlyImporter, permettant l'import de gros maillage PLY (pour lesquels assimp éprouve des difficultés).
  • ObjImporter, permettant l'import de maillages au format OBJ.


Dividers

  • PN-Triangles ;
  • Phong ;
  • Loop ;


PostEffect

  • HDRBloom ;
  • FXAA, un antialiasing rapide de qualité basique ;
  • GrayScale ;
  • KawaseLightStreaks ;
  • SMAA, un antialiasing temporel de bonne qualité ;
  • FilmGrain.
  • Linear Motion Blur.


Generators

  • DiamondSquareTerrain, utilisant l'algorithme diamond square pour générer des reliefs.


Generic

  • CastorGui, étendant les fichiers de scène pour ajouter et dessiner des IHM (boutons, zones de texte, ...) via les incrustations 2D.


ToneMapping

  • Linear, l'opérateur par défaut.
  • Haarm Pieter Duiker.
  • Hejl Burgess Dawson (aussi appelé Filmic).
  • Reinhard.
  • Uncharted 2.


Autres applications

  • CastorViewer : Visualiseur de scènes utilisant Castor3D.
  • CastorMeshConverter : Convertisseur de divers formats de fichier de maillaige vers le format Castor3D.
  • CastorMeshUpgrader : Met à jour les fichiers de maillage utilisant un format Castor3D antérieur à la dernière version.
  • ImgConverter : Projet de conversion de tout type d'images vers XPM ou ICO.


Screenshots

Cerberus-PBRMR.png
Nyra-PBRMR.png
Sponza-PBRMR.png
Sponza-PBRMR-VCT.png
Park-Phong.png
Park-PBRMR.png
SanMiguel-PBRSG.png
SanMiguel-PBRSG-LPV.png



Changelog complet: Suivi de versions