lundi 19 mars 2012

MC3D - plateforme agnostique 3D Fondation

Désolé pour le manque de postes récemment. Les choses ont été, et bien ... vous le savez. Même vieille histoire. Super occupé. Ce qui est bon, mais c'est assassiner sur la fréquence blog.

J'ai récemment eu quelques travaux au port OpenGL ES Je n'ai d'iOS à Android. Il fut un temps que cela aurait été incroyablement douloureuses (par opposition à seulement douloureux). J'aurais dû convertir le code Objective-C à Java, puis de maintenir ensembles complètement distincts de code qui font la même chose exacte. Heureusement, le Android NDK (Kit de développement natif) vous permet d'écrire du code pour Android en C / C + +. La version du NDK en charge sur 2,2 nécessite encore partie de l'activité (l'homologue d'Android à un contrôleur iOS vue) d'être écrit en Java, mais ne vous permettent d'appeler en C / C + + code utiliser JNI. En 2.3 et 3.0, vous pouvez faire des activités ensemble en C ou C + +.

C'est un énorme pas en avant pour Android pour ceux d'entre nous qui ne les performances sont cruciales travailler sur plusieurs plates-formes, mais ce n'est pas sans une certaine douleur. Débogage à travers le pont JNI est ... moins facile. Mais, être capable de partager le code entre plates-formes est une grande victoire, et être capable d'obtenir des vitesses de maternelle dans le processus est le awseome.

Durant ces projets, je prends beaucoup de mes 3D liés code et la création d'un nouvel ensemble de fonctions C la plate-forme agnostique et types. J'ai été nettoyer et faire des noms cohérents, et en plaçant appropriée pré-compilateur de macros pour s'assurer que le code compile correctement partout. Sur iOS, la bibliothèque sera de profiter du cadre de s'accélérer dans les lieux, mais ne nécessite pas accélérer pour fonctionner.

J'ai choisi C, parce que je n'aime pas le mélange C + + et Objective-C. Les modèles d'objet sont trop différentes à mon goût. Mais j'ai aussi fait en sorte d'inclure les déclarations extern bon ifdef'd de sorte que vous pouvez importer les fichiers d'en-tête MC3D à partir de C + + sans tracas.

J'ai baptisé cet ensemble de fonctions MC3D, Et je le fais open source sous une version simplifiée de la licence BSD simplifiée (simplifiée simplifiée licence BSD?). J'ai pris la condition d'attribution, donc la seule exigence est que si vous re-distribuer le code source, vous devez laisser le texte de copyright et la licence intacte. C'est tout. Sinon, vous pouvez l'utiliser gratuitement dans tout projet, commerciale ou autre, sans rien payer, sans lui attribuer, et sans demander (pas vraiment, vous n'avez pas besoin de demander).

MC3D est toujours très un travail en cours, et je suis seulement l'ajout de code au garde que je me sens prête pour la consommation publique. Une grande partie de ce qu'il ya dans MC3D a été affichée ici avant, avec parfois des noms différents ou dans une forme légèrement différente.

Je n'ai d'autre code que j'ai l'intention d'ajouter à l'avenir, y compris de haut niveau des fonctionnalités telles que le chargement du modèle, la gestion des lieux, et l'animation du squelette, mais je ne vais pas ajouter quelque chose jusqu'à ce que son agnostiques fois solide et plate-forme.

Actuellement, la documentation est très clairsemée, et je ne peut actuellement pas offrir aucun soutien ou d'aide à l'utiliser, de sorte caveat emptor! Il me fera plaisir d'accepter des contributions, des corrections de bugs, et à l'arrière de nouvelles fonctionnalités dans la ligne de code MC3D.

MC3D sur GitHub.

Lien fixe, désolé à ce sujet

Aucun commentaire: