Bonjour
Je suis en train de lire les articles sur la création d'un moteur 3D présent sur le site, et je m'appuie beaucoup sur l'architecture proposée.
J'en suis à la réalisation de loader, mais j'ai un petit soucis.
Je souhaite réaliser les loaders de:
-> fichier obj (OBJLoader)
-> fichier shader (ShaderLoader)
Jusque là, pas de soucis.
Cependant, je ne vois pas vraiment l'interet que ça peut avoir dans le cas du ShaderLoader.
Pour mon OBJLoader je procède comme ceci:
Je crée un objet de type Mesh avec un new. Ensuite je crée un objet MeshFrame pour chaque "frame" (bon, pour l'Obj il y en a qu'une) puis une fois le MeshFrame créé je fais: monMesh->addFrame(meshFrame);
Est-ce une bonne façon de faire ou c'est totalement stupide ?
Maintenant, j'ai voulu appliquer ce principe à mon Shader.
(la distinction VertexShader et FragmentShader se fait dans le constructeur, suivant l'extension du fichier).
Avant, ce que je faisais, c'est que dans le constructeur de mon Shader, j'appellais les fonctions de chargement qui étaient interne à la classe. Cependant, ici ça serait stupide de le faire, surtout si j'ai un ShaderLoader.
Ce que j'ai pensé à faire donc, dans le ShaderLoader: charger le fichier, le compiler, créer un Shader (avec new), charger le code source du Shader etl le compiler, et enfin appeller: monShader->setID(idShader);
Ici je me pose la question, est-ce une bonne idée de faire comme ça ? C'est pas un peu étrange ?
Sinon j'aimerai savoir si vous aviez des articles sur l'architecture de moteur 3D, juste pour voir ce qu'il se fait d'autre.
Merci d'avance, et désolé si ma question est stupide .. ^^'
Partager