begin process at 2010 02 10 07:52:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > PETITE DÉMO OPENGL/C++ AVEC FPS

PETITE DÉMO OPENGL/C++ AVEC FPS


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Niveau :Débutant Date de création :11/12/2004 Date de mise à jour :14/12/2004 14:41:21 Vu / téléchargé :7 828 / 891

Auteur : Quicky24

Ecrire un message privé
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
C'est un petit système solaire (basique comme prog mais bon).


 Conclusion

Bug apparent: systeme solaire ne se voit pas de trop.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   DEMO
    • demo.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 261 octets
    • Demo.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 482 octets
    • OpenGL.devTélécharger ce fichier [Réservé aux membres club]1 967 octets
    • OPENGL.exeTélécharger ce fichier [Réservé aux membres club]570 455 octets
  •   Dossier Nicolas
    • GLU32.DLLTélécharger ce fichier [Réservé aux membres club]139 712 octets
    • glut32.dllTélécharger ce fichier [Réservé aux membres club]172 032 octets

Télécharger le zip


 Historique

14 décembre 2004 14:41:21 :
MAJ: régulation du FPS. Mais je ne sais pas pourquoi le texte "Systeme solaire" ne s'affiche pas bien.

 Sources du même auteur

Source avec Zip DÉMO 3D EN OPENGL

 Sources de la même categorie

Source avec Zip JEU DE DAMES 3D par vbclaude
Source avec Zip CHARGEMENT DES TEXTURES EN OPENGL par Jackyzgood
Source avec Zip Source avec une capture OPENGL - UN PEU DE NEIGE... par underprog
Source avec Zip Source avec une capture JEU DE LA VIE 3D OPENGL AVEC GESTION SOURIS par fratleym
Source avec Zip Source avec une capture SPEAD RACER par jngl

Commentaires et avis

Commentaire de goondy le 11/12/2004 22:20:56

Pour ceux qui veulent le lancer, télécharger glut ici : http://www.xmission.com/~nate/glut.html

dézipper et prendre glut32.dll pour le mettre dans C:\windows\system32

C bien pour commencer, mais t'as deux planètes qui se rentrent dedans, et tu devrais chercher des textures toutes faites pour les planètes ;)

Mais bon, c'est bien pour le début de l'OpenGL avec GLUT.

Commentaire de mickbad le 13/12/2004 09:01:14

Bonjour,

Bonne source pour commencer effectivement mais manque alors quelques commentaires : un débutant peut ne pas comprendre du premier coup certaines instructions, non ? Tu en as mis je sais mais pour une source de démonstration : plus on met de commentaire, mieux c'est ;)))

D'autre part du point de vue technique de programmation (hors opengl tout de même car c'est limpide ce que tu as écris :), je te conseille d'utiliser dans Ecrire(GLdoubel, GLdouble, char*, ...) la fonction *vsnprintf* plutôt que *vsprintf*.

Pourquoi ? risque latent de débordement de capacité de ton buffer !

ce qui donne :
---------------------------------------------------
va_list args;
char buffer[255], *s;
    
va_start(args, format);
  vsprintf(buffer, 255, format, args);
va_end(args);
---------------------------------------------------

C'est de la technique pure qui n'a rien à voir mais qui peut te servir un jour ;)

Enfin, évite de définir des fonctions dans le .h sauf si (en c++) c'est déclaré en tant que "inline".
Quoi rabajoie, héhé ... juste que si tu as plusieurs CPP utilisant ce .H à compiler et assembler ensuite, tu auras des erreurs de fonctions déjà définies (surtout avec gcc, mingw, ...)

Good job, guy ;)
MickBad

Commentaire de Quicky24 le 13/12/2004 15:31:43

merci de ces précisions MickBad.
quicky24

Commentaire de Arnaud16022 le 13/12/2004 19:11:01

ben voila c'est quand meme autre chose!
cependant quelques problemes encore:
la taille du .exe : 242Ko ca me parait gros... va voir dans l'aide du compilo comment optimiser ca.
la phrase 'pour accelerer les fps, appuyez sur f' ne veut RIEN dire, meme si ds le prog ca fait fps++;le probleme c'est que tu fais
glRotated(-e,0,1,0); e -= 2;
aieaieaie.
ce qu'il faudrait faire c'est
glRotated(-e,0,1,0); e -= DeltaTemps;
if(fps > 60) {  fps -= 2.00; } ne sert a rien du tout (mais alors vraiement a rien...)
et voila...

mickbad -> t'as un lien sous le coude qui expliquerait la différence entre ces 2 fonctions plus précisément? merci.

Commentaire de Arnaud16022 le 13/12/2004 19:12:13

oh et si on pouvait voir du dessus ca serait cool...

Commentaire de goondy le 13/12/2004 19:22:33

Mouais c vrai que sur le coup j'avais pas capté ce qu'il voulait dire par changer les fps, j'ai pas pensé à le dire! lol

Commentaire de mickbad le 14/12/2004 08:54:22

Arnaud16022> salut,
de mémoire non pas vraiment mais les fonctions printf, sprintf, snprintf, vprintf, vsnprintf proviennent de "l'api" standard du C (stdio.h). Donc tu peux "logiquement" trouver les détails dans tout bon tutorial ou livre tel que "Le Language C" de Kernighan et Ritchie (livre référence de base même si ça date un peu ;)

Pour résumer un peu (de ce que tu sais certainement implicitement :) :
- printf te sert à afficher du texte formatée sur stdout (au même titre que fprintf(stdout ...))
- sprintf fait la même chose sauf que le flux est stocké dans une mémoire préalablement allouée
- snprintf (ce que j'utilise le plus en C) n'a de différence avec sprintf qu'avec la taille de sortie du flux : en gros, snprintf(buf, 256, "%d", 3) te place 3 dans buf mais sachant que si le texte formaté dépasse 256 caractères, il sera tronqué !
-vsprintf / vsnprintf : idem que sprintf et snprintf sauf que les arguments du texte formaté est sous la forme d'une liste (va_list) : utile qd tu es dans une fonction de type void foo(char* gnagna, ...) où tu ne connais pas le nombre d'argument. [l'exemple d'utilisation de vs[n]printf donné dans cette source (.h) est parfaite]

Voilà pour la théorie :)
En pratique l'utilisation de *nprintf est conseillé car tu es sur d'une chose : il n'y aura pas de débordement de capacité sur ta zone allouée (à moi que tu te trompes dans la taille à fournir :)))
Le risque : plantage de ton programme (et pas forcément à l'endroit de cette faute ... ça vient *toujours* plus tard à un endroit inattendu), mémoire non libéré entièrement => instabilité du prgm ou sysème, trou de sécurité (surtout si cette zone correspond à une entrée utilisateur qui peut injecter du code supplémentaire via ton interface)

Tout est relatif à l'échelle du programme naturellement ;)

Tiens de même avec string.h, il vaut mieux utiliser strncpy plutot que strcpy, strncat plutôt que strcat ...

au niveau des liens, je vais rechercher mais pas évident de trouver des comparatifs de fonctions standard

j'espère t'avoir répondu
MickBad

Commentaire de Quicky24 le 14/12/2004 13:57:39

Arnaud16022> j'ai modifié mon code et j'ai trouvé comment régulé les fps jusqu'a 60 et merci pour l'aide
:-)
goondy> tu as raison mais avec les textures ça va ralentir les FPS.

quicky24

Commentaire de Arnaud16022 le 14/12/2004 21:22:24

Naaaaan...
le but n'est pas de réguler le fps.
le but est d'avoir au contraire un fps le plus élevé possible, pour en conservant la meme vitesse de déplacement des spheres quelque soit le fps.
dans ton prog  tu as une variable temps.
remplace e-=2 par e-=10*temps
(temps déclaré en global, c'est le cas je crois)
tu verras la ca marchera bien, meme en aggrandissant la fenetre la vitesse sera constante.
par contre ta maj refuse ded se lancer (la fenetre se crée mais n'affiche rien, et 600Ko pour un exe c'est gros je trouve.

Commentaire de Arnaud16022 le 14/12/2004 21:26:30

G recompilé.
c'est zarbi ce truc.
mon exe fait 1 Mo optimisé au max.
le fps est bloqué, mais en aggrandissant la fenetre le vitesse diminue, ca devrait pas puisque le fps ne change pas...
??

Commentaire de Arnaud16022 le 14/12/2004 21:54:44

j'ai refait ton prog il marche impec now.
file moi ton mail que je te l'envoie

Commentaire de Quicky24 le 15/12/2004 18:06:34

Arnaud> bah tu cliques sur mon avar et tu auras mon e-mail.

Commentaire de Quicky24 le 15/12/2004 18:08:12

oh c vrai ils donnent pas, c'est "n.le_forestier@tiscali.fr"

Commentaire de Alesx le 18/02/2005 17:05:59

Moi qui suis sur un projet similaire, j'me suis dit youhou ! voilà un chti gars super cool.

Mais en fait quand je compile le tout, j'ai un problème avec tous les include iostream, cstdio lib arg , list?

Sauriez vous pourquoi ?????

Commentaire de mickbad le 21/02/2005 09:47:31

salut,

Tu as essayé d'ajouter .h aux includes ?
Parfois les compilateurs n'acceptent pas ce genre de syntaxe:
#include <iostream>

et tu peux nous écrire au moins un message d'erreur pour nous aiguiller ? :)

Mick

Commentaire de Arnaud16022 le 21/02/2005 21:35:31

oui... il dit quoi le compilo?

Commentaire de Quicky24 le 09/03/2005 21:21:55

slt alesx tu compiles avec quel IDE?

Commentaire de Quicky24 le 09/03/2005 21:23:36

ah oui j'ai oublié j'ai corrigé le bug: mais il est encore sur l'ordi.

Commentaire de Quicky24 le 15/04/2005 15:10:20

mon code ne marche pas sur XP fait chier ça!!

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales