Lorsque je programme avec OpenGL ES sur iPhone OS, je dois utiliser beaucoup de fonctions OpenGL. Cela me semble très procédural. Je me demande si je pourrais faire une classe appelée "cube", qui dessine un cube s'il est appelé. Ou est-ce que tout le code d'application doit être dans une portée énorme?Puis-je continuer à faire de la programmation orientée objet en utilisant OpenGL ES sur iPhone OS?
Puis-je continuer à faire de la programmation orientée objet en utilisant OpenGL ES sur iPhone OS?
Répondre
Vous pouvez structurer votre code comme vous le souhaitez. Oui, les commandes OpenGL sont de style impératif procédural, mais vous pouvez créer vos propres abstractions, par exemple. style orienté objet sur eux. Vous pouvez donc avoir un objet cube, qui possède certaines propriétés, puis dessiner une méthode qui utilise des commandes OpenGL pour dessiner un cube avec ces propriétés. Par exemple, notre bibliothèque 2D construite sur OpenGL a des couches en tant qu'objets et ces couches forment une hiérarchie de couches où chaque couche est simplement responsable de dessiner elle-même et d'appliquer des transformations pour qu'elles s'appliquent à ses couches enfants. Ainsi, par exemple, nous pouvons construire facilement des formes complexes à partir de couches de formes simples (cercles, rectangles, polygones convexes, images ...) et en faisant tourner un calque parent, les calques enfants tournent correctement en une forme complexe.
Vous pouvez faire des classes dans l'objectif c, mais il y a aussi un article intéressant avec le mélange de l'objectif c avec C++ pour gérer vos classes. C'est ce que j'utilise pour mon application OpenGLES.
Je me suis retrouvé avec C droite pour ma manipulation OpenGL ES. Je suis curieux d'ajouter C++ à Objective-C. Diriez-vous que cela rend la manipulation de la mémoire plus facile, plus difficile ou ne l'affecte pas du tout? – Nosredna
si ce serait en dehors du cacao: certainement plus difficile. au moins je le crois. – Thanks
Tout dépend de ce que vous savez déjà dans la mesure où plus facile/plus difficile va. Personnellement, j'ai beaucoup d'expérience en C++ donc pour moi c'était un million de fois plus facile car je trouve la manière objective de gérer les classes extrêmement horrible. Ce n'est pas forcément plus dur parce que c'est en dehors du cacao, encore une fois cela dépend de votre expérience. –
- 1. Dans OpenGL ES sur iPhone, comment faire défiler deux images?
- 2. programmation orientée objet: recherche de bons tutoriels
- 3. OpenGL à OpenGL-ES - glBegin();
- 4. Quel est le format de données de vertex préféré pour OpenGL ES sur iPhone OS?
- 5. iPhone OpenGL ES mélange alpha incorrect
- 6. Existe-t-il une API pour dessiner des statistiques dans OpenGL ES sur iPhone OS?
- 7. Notions élémentaires de la texture 2D pour iPhone OpenGL ES
- 8. En ce qui concerne F # Programmation orientée objet
- 9. iPhone OpenGL ES 2d texture d'arrière-plan
- 10. Programmation orientée aspect en C#
- 11. Programmation OpenGL multi-thread dans Cocos2D-iPhone
- 12. Couche OpenGL en haut de la vidéo sur iPhone?
- 13. Quels frameworks OpenGL ES sont disponibles pour les interfaces utilisateur 2D avec iPhone OS?
- 14. Comment faire pour déboguer OpenGL ES se bloque?
- 15. Rotation d'un cube (en utilisant opengl - Iphone)
- 16. iPhone OS 3.0 + OpenGL ES 2.0. Est-ce que quelqu'un voit mieux anti-aliasing?
- 17. iPhone OS/SDK Programmation Info
- 18. Programmation orientée objet accédant aux valeurs de variables, Comment?
- 19. Comment envoyer demande USSD par la programmation sur iPhone OS
- 20. Opengl ES - Rendu incorrect sur l'axe z?
- 21. Quels livres et ressources sont bons pour apprendre OpenGL ES pour iPhone OS rapidement?
- 22. en utilisant l'iPhone OpenGl ES efficacement pour 2d (et la détection de collision)
- 23. Images de caméra iPhone comme textures OpenGL ES
- 24. Tracer une ligne blanche en opengl es
- 25. Qu'est-ce que la programmation orientée aspect?
- 26. OpenGL ES profondeur tampon
- 27. Grand fond de défilement dans OpenGL ES
- 28. Utilisation de motifs en quadrichromie dans la programmation orientée aspect?
- 29. Comment rendre une image avec OpenGL ES?
- 30. OpenGl ES scrollable ListBox problème de clipping
Je vois ... c'est cool. Votre lib est fait par vous-même? Je pense que je vais devoir créer quelque chose de similaire à tout le système d'animation UIKit/core pour faire de belles choses. Mais je me demande si cela a du sens, car beaucoup d'abstraction est mauvaise pour la performance, n'est-ce pas? – Thanks
Trop d'abstraction peut être mauvais pour la performance, mais il est peu probable que vous en fassiez trop. Et vous pouvez toujours optimiser plus tard. Nous avons fait notre propre bibliothèque parce que nous voulions avoir une bibliothèque identique, un style de programmation (assez fonctionnel) et des idiomes à ce que nous avons déjà dans Flash. Mais je recommande que vous commenciez avec, par exemple, Cocos2D pour iPhone si vous avez besoin d'une bibliothèque 2D ou par ex. Moteur Oolong ou moteur SIO2 si vous avez besoin de 3D. –