Overview
Castor3D est un moteur 3D multi-plateformes utilisant OpenGL.
Il fonctionne sur les plateformes Linux (GTK) et Windows.
Pour l'instant seul OpenGL est supporté, et un renderer Vulkan est prévu (bon, quand j'aurai le temps ^^').
- Deferred rendering pour les objets opaques
- Weighted Blended rendering pour les objets transparents.
- Normal mapping.
- Parallax Occlusion Mapping.
- Screen Space Ambiant Occlusion.
- Shadow Mapping.
- Reflection/Refraction Mapping.
- Rendu PBR (Metallic/Roughness et Specular/Glossiness) et rendu SSR.
- Graphe de scène.
- Shaders (GLSL), avec écriture du code du shader directement depuis le code C++.
- Génération automatique de shaders, en fonction de la configuration de la passe.
- Génération de l'espace tangent par sommet.
- Scènes décrites dans un format texte facilement compréhensible et extensible.
- Rendu HDR avec application de divers opérateurs de Tone Mapping.
- Le rendu peut être synchrone (timers) ou asynchrone (thread).
- Il est basé sur une architecture modulaire, à base de plug-ins.
Les différents types de plug-ins supportés sont: Importer, Divider, Renderer, PostEffect, Generator, Generic.
Les plug-ins de type Importer permettent l'ajout de l'importation de nouveaux formats de fichiers de maillages.Sont actuellement implémentés :
- 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.
J'ai pour l'instant implémenté les algorithmes suivants :
- PN-Triangles ;
- Phong ;
- Loop.
Sont actuellement implémentés :
- GlRenderSystem, pour utiliser OpenGL.
- TestRenderSystem, un renderer de test, ne faisant à peu près rien, mais permettant l'implémentation de tests.
Sont implémentés pour l'instant :
- HDRBloom ;
- FXAA, un antialiasing de qualité basique ;
- GrayScale ;
- KawaseLightStreaks ;
- SMAA, un antialiasing temporel de bonne qualité ;
- FilmGrain.
Pour l'instant un seul plug-in de ce type est implémenté :
- DiamondSquareTerrain, utilisant l'algorithme diamond square pour générer des reliefs.
Pour l'instant un seul plug-in de ce type est implémenté :
- CastorGui, étendant les fichiers de scène pour ajouter et dessiner des IHM (boutons, zones de texte, ...) via les incrustations 2D.
Sont implémentés les opérateurs suivants :
- Linear, l'opérateur par défaut.
- Haarm Pieter Duiker.
- Hejl Burgess Dawson (aussi appelé Filmic).
- Reinhard.
- Uncharted 2.
- CastorViewer, visualiseur de scènes utilisant Castor3D.
- ImgConverter, projet de conversion de tout type d'images vers XPM ou ICO.
La documentation du projet est contenue dans les headers et peut être générée via Doxygen.
Le projet en lui-même est compilable sur les plateformes supportées en utilisant CMake.
- Homepage: http://castor3d.developpez.com/castor3d.html
- Forum : http://www.developpez.net/forums/f1484/applications/projets/projets-heberges/castor3d
- Licence : MIT
Members
Chef de projet : dragonjoker59
Développeur : dragonjoker59
Rapporteur : dragonjoker59
Participant : dragonjoker59
Latest news
Version 0.10.0
Support du PBR, dans les 2 workflows les plus communs : Metallic/Roughness et Specular/Glossiness.
Version 0.9.0
Au programme : améliorations des performances, systèmes de particules, Skybox, FXAA.
Version 0.8.0
Les 2 principaux topics (animations et billboards) et moult modifications et améliorations ont été implémentés, dans cette nouvelle version.
Castor3D en version 0.7.0
Après plus de 3 ans sans faire parler de lui (tout en travaillant dans l'ombre) voici la nouvelle version du Castor!
Castor3D en version 0.6.1.2
Avancée du renderer Direct 3D et du développement sous Linux