Présentation
Ce moteur 3D a l'ambition d'être multi-plateformes et multi-renderer.
Pour l'instant, seul le développement sous Windows est exploitable (je galère pour la création d'une fenêtre compatible OpenGL sous Linux).
Seul le Renderer OpenGL est implémenté (je n'ai aucune connaissance en Direct3D).
La reconnaissance des Shaders est implémentée, uniquement la partie GLSL pour l'instant, on verra un jour pour intégrer Cg.
Pas encore de LOD ni de gestion OcTree pour l'instant, mais c'est prévu.
Support de plusieurs formats de fichiers : Obj, 3DS, MD2, MD3, PLY.
Le système d'animation a un squelette qu'il me faut compléter afin d'avoir une implémentation correcte d'un système d'animation avec ou sans squeleton (notamment Morphing).
Version Actuelle : 0.6.1.0
Ajouts
Utilisation des smart pointers tr1.
Création d'un tronc commun 'OpenGLCommon' pour les 2 renderers OpenGL
Création d'une classe de Pipeline qui effectue les calculs matriciels et d'autres petites fonctions (perspective, ortho, ...)
Modifications.
Le MemoryManager (activé uniquement en debug) a été modifié, ajout d'une classe template MemoryTraced qui surcharge les operateurs new, delete new [] et delete [], ce afin d'avoir une meilleure trace des objets créés et détruits. Chaque classe des projets du Castor dérivent maintenant de celle-ci, et 3 fichiers sont donc créés dans le répertoire racine (C:\ sous Windows) : memoryleaks.log, memoryalloc.log et memorydealloc.log
La classe TransformationMatrix n'existe plus, il ne s'agit plus que d'une collection de fonctions sur matrices carrées 4x4.
Modification de la gestion des SceneNode : Une classe de base NodeBase qui contient les informations qui se trouvaient dans SceneNode, 3 classes dérivées (GeometryNode, CameraNode et LightNode) qui s'occupent des fonctionnalités spécifiques au rendu de chacun des types liés (respectivement Geometry, Camera et Light).
La classe MovableObject a maintenant moins de fonctionnalités (en fait elle n'a plus qu'un nom et un NodeBase) et les classes Light et Camera dérivent maintenant de cette classe (pour plus d'uniformité dans les déplacements de ces objets par rapport aux géométries)
Renommage des classes UniformVariable en FrameVariable, pour refléter plus ce que c'est et moins lier ce genre de choses à OpenGL.
Le module OpenGL 3.x/4.x est achevé
Corrections de Bugs
Correction du plantage à la fermeture du soft en release uniquement.
Correction du rendu noir avec OpenGL 3.x, corrigé je ne sais trop comment, mais grâce à la suppression progressive du pipeline fixe en OpenGL 2.x
A faire
Modifier la structure des vertex de façon à ce qu'ils incluent les coordonnées de texture et les normales directement, de façon à n'avoir qu'1 buffer de vertex par mesh au lieu de 3 actuellement.
Dépendances
Pour compiler CastorUtils et Castor3D, vous aurez besoin de boost, FreeImage et FreeImagePlus
Pour compiler OpenGLCommon, GL2RenderSystem et GL3RenderSystem vous aurez besoin de GLEW
Pour compiler CastorShape et CastorViewer, vous aurez besoin de wxWidget
Téléchargement
Sources
CastorUtils (Miroir) Bibliothèque de fonctions communes aux autres projets.
Castor3D (Miroir) Moteur de rendu.
CastorShape (Miroir) Visualiseur / Editeur de scènes et modèles.
CastorViewer (Miroir) Visualiseur de scènes et modèles.
OpenGLCommon (Miroir) Fonctions communes à GL2RenderSystem et GL3RenderSystem.
GL2RenderSystem (Miroir) Module de rendu compatible OpenGL 2.x et antérieur.
GL3RenderSystem (Miroir) Module de rendu compatible OpenGL 3.x et ultérieur.
Exécutables
CastorShape (Miroir)
CastorViewer (Miroir)
Données optionnelles
Exemple de Scène au format CSCN. (Miroir) Il est possible de l'éditer avec n'importe quel éditeur de texte pour modifier les matériaux, ...
Partager