Developpez.com - Projets
X

Choisissez d'abord la catégorieensuite la rubrique :

Castor3D en version 0.6.1.1

Passage à CMake + modifications diverses
Ajouté par dragonjoker59 il y a plus de 6 ans

Changements

Ajouts

Création d'un fichier CMakeLists pour générer la solution à partir de CMake.
Réorganisation des fichiers du dossier afin de mieux se prêter à ça.
Séparation de la classe Plugin en 3 types différents : Renderer, Divider et Importer. Ainsi on pourra ajouter de nouveaux types de plugin aisément et l'ajout d'importers et de subdiviseurs se fera sans devoir recompiler tous les projets.
Ca entraîne la création d'un projet par importeur existant (OBJ, PLY, MD2, MD3, 3DS, ...)
PNTrianglesDivider reste dans le Castor car utilisé par la primitive Icosaedron, LoopDivider est quand à lui placé dans un plugin.
J'ai commencé à implémenter les shaders Cg. Ca implique une modification des fichiers de scène, car dans Cg les variables uniform sont liées à un programme (vertex, pixel, geometry) plutôt qu'au shader complet comme c'est le cas en GLSL. Il reste quelques trucs à revoir (je ne sais pas encore quoi) pour que ça fonctionne.

Modifications

Suppression de FreeImagePlus, maintenant les projets ne nécessitent plus que FreeImage.
La création des Buffers utilisés pour le rendu (Vertex, Attribute, Texture, Normals, ...) se fait maintenant par le RenderSystem => on peut donc les créer dans Castor3D et pas seulement dans les renderer (GL2, GL3 et dans le futur D3D).
Suppression des Singletons pour les différents Managers (Image, Font, Scene, Material, Animation et Mesh).
J'ai retouché les SceneNodes, j'ai refusionné les 3 classes différentes en une seule pour des commodités d'utilisation.
Création d'une classe IdPoint, qui étend Point et y ajoute un Index qui correspond à son index dans le submesh. La fonction AddPoint de Submesh crée maintenant des IdPoint et la fonction AddFace se sert d'eux pour générer les Vertex.
Les subdiviseurs peuvent subdiviser dans un thread à part, permettant de ne pas figer une application pendant la subdivision (cf. CastorShape). Il est possible d'assigner une fonction qui sera lancée à la fin de la subdivision (cf. CastorShape).

Corrections de Bugs

Correction du LoopDivider qui ne repositionnait plus les Vertex (les nouveaux étaient créés mais plus replacés, dû à la nouvelle architecture des Vertex)

Dépendances

Pour compiler CastorUtils et Castor3D, vous aurez besoin de boost, FreeImage
Pour compiler OpenGLCommon, GL2RenderSystem et GL3RenderSystem vous aurez besoin de OpenGL, GLU et GLEW
Pour compiler CastorShape et CastorViewer, vous aurez besoin de wxWidget


Commentaires

Contacter le responsable de la rubrique Projets