Ce moteur 3D (ce n'est pas un moteur de jeu !!) a l'ambition d'être multiplateforme.
Il fonctionne sous Windows et sous Linux.
Version 0.11.0
Le plus gros changement de cette version est le passage sous Vulkan, en utilisant Ashespp, mon wrapper C++.
Ce wrapper me permet aussi d'exploiter Ashes, qui permet le support d'OpenGL et Direct3D11.
Fonctionnalités
Général
- Ajout du support de vcpkg pour les dépdendances externes.
CastorUtils
- castor::Matrix et castor::Point ont maintenant leurs données en statique, et l'empreinte mémoire de castor::Matrix a été réduite.
Castor3D
- GlslWriter a été complètement supprimé et remplacé par ShaderWriter, permettant l'export des shaders dans le langage shader natif pour l'API de rendu choisie.
- Ajout du support des cross skyboxes.
- Le contrôle du filtrage anisotropique a été ajouté aux scene files.
- Ajout du choix du type de shadow map (Raw, PCF ou VSM).
- Ajout d'une fonction sendEvent à Engine, pour l'exécuter directement si un device est actif.
- Extraction des fonctions de lecture/écriture binaire dans de nouveaux fichiers, pour réduire les dépendances d'inclusion.
- Revue de la gestion des mipmaps pour les images chargées depuis un fichier.
- Ajout du volumetric light scattering.
- MatrixUbo est maintenant une référence, dans RenderPass, et est donc gérée par leur parent.
- Les meshes peuvent maintenant avoir un matériau par défaut, dans les scene files, permettant de réduire leur taille.
- RenderQueue utilise maintenant un SceneCuller, permettant de spécialiser le mode de culling voulu (aucun ou frustum, pour l'instant).
- Les Cascaded shadow maps sont implémentées pour les sources lumineuses directionnelles.
- Les incrustations sont maintenant dessinées dans leur propre framebuffer, puis celui-ci est combiné avec le rendu 3D.
- Les Shadow maps utilisent maintenant des texture arrays (2D ou Cube).
- Implémentation de global illumination via les Light Propagation Volumes.
- Implémentation de global illumination via le Voxel Cone Tracing.
- Implémentation des animations de texture (rotation et translation des UV).
Importers
- Quelques corrections dans l'importeur OBJ.
RenderSystems
- Tous les render systems ont été supprimés, grâce à Ashes.
PostEffects
- Création de l'effet LinearMotionBlur.
Samples
- Ajout de CastorTestLauncher, permettant les tests de rendu via l'API de rendu voulue.
- ShaderDialog a été réactivée, pouvant maintenant être utilisée pour afficher les shaders de tone mapping et de post effect.
- ShaderDialog affiche maintenant tous les shaders pour le pipeline utilisé dans l'affichage d'une passe.
- La bounding box du submesh sélectionné apparaît maintenant en jaune.
Tools
- Ajout de l'outil CastorMeshUpgrader, permettant la mise à jour des fichiers cmsh en ligne de commande.
- Ajout de l'outil CastorMeshConverter, permettant de convertir les fichiers mesh supportés en fichiers cmsh, en ligne de commande.
- Ajout de l'outil DiffImage, qui effectue la comparaison entre une image de référence et une autre image (générée via CastorTestLauncher), pour automatiser les tests de rendu.
Corrections de bugs
CastorUtils
- Correction de l'initialisation d'une castor::Matrix depuis une matrice de taille différente.
- Correction du flip d'un pixel buffer.
Téléchargements
Exécutables
Installeur de Castor3D (Windows x64).
Installeur de Castor3D (Debian amd64).
Quelques screenshots
San Miguel Patio, Rendu PBR Specular/Glossiness, LPV activés
Sponza, Rendu PBR Metallic/Roughness, VCT actif
Park, Rendu PBR Metallic/Roughness, LPV activés
Park, Rendu Blinn Phong, VCT actif
Une vidéo montrant un peu le résultat du Voxel Cone Tracing, ainsi que son paramétrage :