IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Jeu avec GLscene


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Par défaut Jeu avec GLscene
    Bonjour,

    Alors voilà je suis en plein developpement dun petit FPS avec delphi7 et GLScene
    tout vas bien pour l'instant sauf que je me trouve face à 2 problèmes et mes recherches internet se sont révélées infructueuses donc je pose la question ici, on sait jamais..

    1) Je cherche des armes et des personnages au format md2 ou md3 car je n'ai qu'un seul ennemi et une seul arme que j'ai récupérer dans les exemples de GLScene donc si quelqu'un connait un site où il est possible de télécharger ça gratuitement ce serait sympas de m'en faire part De même des tutoriaux pour créer ses propres perso sous blender (au format précédemment cité) m'interesse aussi.

    2) J'ai remarquer que la vitesse d'execution du programme varie en fonction de la puissance du pc sur lequel il tourne. Comment faire pour "uniformiser" tout ceci?

    Par avance merci.

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    tu peux trouver des modèles Quake sur polycount

    quand à l'animation il faut tenir compte du temps qui passe...par exemple avec GetTickCount et animer les personnages en fonction du delta de temps entre deux rendu.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Par défaut
    Merci beaucoup pour le lien! par contre pour GetTickCount je fait comment? j'ai pas trés bien saisi. Un exemple serait le bien venu (je comprend vite mais faut m'expliquer longtemps lol )

    Encore merci pour le lien moi G chercher toute l' aprem pour rien. J'aurais dû demander plus tôt.

    Ah oui tant que j'y suis..je sait que glscene peut lire le formats tel que 3ds, md2, md3 mais je me demandais quels autres formats il pouvait lire? (et lesquels ont le meilleur rendu graphique).

    merci

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    ben dans le cas des MD2, je pense que MD3 c'est un peu pareil, tu as des frames

    premier cas simple, lors du rendu tu regardes le temps qui a passé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // procedure de rendu
    begin
    // on prend les ms actuelle
     NewTicks:=GetTickCount;
    // si on une ancienne valeur calculer le delta, sinon c'est le premier passage
     if OldTicks=0 then DeltaTicks:=0 else DeltaTicks:=NewTicks-OldTicks;
     
    // animation du personnage
     while DeltaTicks>TicksPerFrame do begin
      NextFrame; // changement de frame dans le MD2
      dec(DeltaTicks,TicksPerFrame);
     end;
     
    // affichage du personnage
     DrawFrame;
     
    // pour le prochain passage (on retire les ticks restant dans le delta)
     OldTicks:=NewTicks-DeltaTicks; 
    end;
    ça c'est l'idée générale pour un seul MD2, biensûr, il faudra faire de même pour chaque personnage.

    je ne sais pas comment GLScene gère les MD2, mais il est aussi possible de faire de l'interpolation entre deux frames, dans ce cas on utilise le DeltaTicks restant (<TicksPerFrame) pour calculer des points intermédiaries :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    x:=x1+(DeltaTicks/TicksPerFrame)*(x2-x1)
    ce qui sur un MD2 a tendance à donner un effet de vague (car les coordonnées du MD2 sont arrondies sur 8 bits) mais donne un mouvement moins saccadé.

    NB: TicksPerFrame est le temps en ms pendant lequel la frame doit être affiché avant de passer à la suivante...il me semble que c'est une durée constante sur un MD2 180 ms si je ne dis pas de bêtise.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    dem
    dem est déconnecté
    Membre actif

    Inscrit en
    Juillet 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Juillet 2003
    Messages : 114
    Par défaut
    Bonjour,

    Puis-je savoir quelle version de GLScene tu utilises ?

    J'ai voulu un peu m'initier à la 3D et j'ai installé GLScene dans mon Delphi 7.

    Je n'arrive pas à comprendre comment le faire fonctionner, même après plusierus reinstall à zéro, même de Delphi, j'ai plantage sur plantage.

    Par exemple, j'ouvre n'importe quel démo, au hasard, MegaCube, je compile tout se passe bien... je ferme la fenêtre, et là :

    Exception EGLContext.....
    Runtime Error 216 at.....

    Et j'ai beau cliquer et recliquer ça ne s'arrête jamais.

    Même après un bon vieux Ctrl+F2, j'ai un

    Context activation Failed: ....

    Mon Delphi7 est planté; y'a plus qu'a tout erlancer.


    Si je lance l'exe, alors là c'est la panique Windows.. mon seul recours est de cliquer du le bouton Débogage de la fenêtre de signalement d'erreur de Windows..... sinon aucun moyen de s'en sortir !

    Si ça marche chez les autres j'aimerais bien savoir comment afin de retester...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Par défaut
    Je vais peut être donner l'impression de n' être jamais content mais J'ai besoin d' armes au format md3 car le probléme de celles en md2 c'est qu'il faut sans cesse leur indiquer le Pitchangle, le rollangle, le turnangle et les 3 axes pour qu'elles soient positionnés correctement (comme dans un fps) si quelqu'un connait un site...

Discussions similaires

  1. [Projet Jeu] - Moteur 2D avec GLScene / Asphyre
    Par Leobaillard dans le forum Langage
    Réponses: 61
    Dernier message: 06/05/2006, 18h26
  2. Réponses: 4
    Dernier message: 13/02/2006, 21h58
  3. [debutant] jeu avec creation de processus et partage memoire
    Par cbv38 dans le forum Threads & Processus
    Réponses: 1
    Dernier message: 01/12/2005, 17h39
  4. Topic - La création d'un jeu avec opengl.
    Par AsmCode dans le forum OpenGL
    Réponses: 2
    Dernier message: 18/10/2005, 16h19
  5. Créer un jeu avec plusieurs langages
    Par spidouille dans le forum Pascal
    Réponses: 6
    Dernier message: 04/10/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo