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

Ogre Discussion :

ogre - tuto débutant n4


Sujet :

Ogre

  1. #1
    Membre habitué Avatar de skysee
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 191
    Points : 137
    Points
    137
    Par défaut ogre - tuto débutant n4
    Bonjour à tous,
    j'apprend a utilliser ogre en suivant les tutos présent sur le site de la communauté fr. J'en suis tuto 4 qui concerne la classe framelistener.
    Seulement voila, pour les trois premiers tutos je n'ai pas utilliser le "exempleApplication.h", j'ai tout cherché tout seul pour tout bien comprendre.
    Seulement la, le tut utillise "exampleFrameListener.h" pour le lequel, je dois dire, je ne comprend rien.
    le tuto : http://ogre3d.fr/wiki/Tutorial_pour_...utant_n%C2%B04

    J'ai du mal a comprendre l'interêt de ces tutoriels qui te fournisse le travail tout maché, au final on a pas compri le pourquoi du comment.

    J'ai compri a quoi servaient les frameListener. Seulement au début du tuto une fonction est appellée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Show the frame stats overlay
            mFrameListener->showDebugOverlay(true);
    Cette fonction est censé afficher le fps en bas a gauche de la fenetre de rendu.

    N'utillisant pas "exampleApplication", j'aimerais réussir a afficher ce fps.

    Voila leur fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	void showDebugOverlay(bool show)
    	{
    		if (mDebugOverlay)
    		{
    			if (show)
    				mDebugOverlay->show();
    			else
    				mDebugOverlay->hide();
    		}
    	}
    mDebugOverlay est initiallisé comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Overlay* mDebugOverlay;
    mDebugOverlay = OverlayManager::getSingleton().getByName("Core/DebugOverlay"); //je ne comprend pas cette ligne
    Alors, je ne vois pas du tout comment est géré l'affichage du fps. Bref tout est obscur.

    Si quelqu'un a un petit lien a me confier pour m'aider, merci beaucoup

  2. #2
    Membre habitué Avatar de skysee
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 191
    Points : 137
    Points
    137
    Par défaut
    Bon alors j'ai avancé.

    Voila ce que j'ai pu comprendre.

    Les overlays sont des éléments graphique (décris à travers des scripts) qui se positionnent "par dessus la fenêtre de rendu (renderWindow).

    Pour l'affichage du fps ( et en utillisant les scripts overlay des tutoriaux), on initialise chaque OverlayElement a partir des scripts de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	static Ogre::String currFps = "fps courrent: ";
    	static Ogre::String avgFps = "fps moyen: ";
    	static Ogre::String bestFps = "meilleur fps: ";
    	static Ogre::String worstFps = "moins bon fps: ";
     
     
    	Ogre::OverlayElement* guiAvg = Ogre::OverlayManager::getSingleton().getOverlayElement("Core/AverageFps");
    	Ogre::OverlayElement* guiCurr = Ogre::OverlayManager::getSingleton().getOverlayElement("Core/CurrFps");
    	Ogre::OverlayElement* guiBest = Ogre::OverlayManager::getSingleton().getOverlayElement("Core/BestFps");
    	Ogre::OverlayElement* guiWorst = Ogre::OverlayManager::getSingleton().getOverlayElement("Core/WorstFps");
    la classe RenderTarget fournit les attributs calculant le fps , il n'ya plus qu'à les récupérer et définir nos chaînes de carractères a afficher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	const Ogre::RenderTarget::FrameStats& stats = pRenderWindow->getStatistics();
     
    	guiAvg->setCaption(avgFps + Ogre::StringConverter::toString(stats.avgFPS));
    	guiCurr->setCaption(currFps + Ogre::StringConverter::toString(stats.lastFPS));
    	guiBest->setCaption(bestFps + Ogre::StringConverter::toString(stats.bestFPS) + " "+ Ogre::StringConverter::toString(stats.bestFrameTime) + " ms");
    	guiWorst->setCaption(worstFps + Ogre::StringConverter::toString(stats.worstFPS) + " "+ Ogre::StringConverter::toString(stats.worstFrameTime) + " ms");
    Voila, il n'ya plus qu'à mettre à jour tout ca a chaque frameEnded:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    bool Application::frameEnded(const Ogre::FrameEvent& evt)
    {
    	majFps();
    	return true;
    }
    Voila, il n'ya plus qu'à afficher Core/DebugOverlay.

    Maintenant, je n'ai plus qu'a comprendre comment ces scripts fonctionnent, le manuel est bien fournit à ce niveau.

  3. #3
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Points : 833
    Points
    833
    Par défaut
    Hello,
    Je découvre également Ogre en ce moment.
    Si tu veux bien comprendre ce que font exactement les classes du framework example je te conseil de lire:
    http://www.ogre3d.org/wiki/index.php...rk_Demystified
    Il est en anglais mais pour ogre c'est préférable, je crains que les tuto français ne soit plus forcément à jours.

  4. #4
    Membre habitué Avatar de skysee
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 191
    Points : 137
    Points
    137
    Par défaut
    ces classes m'ont vraiment permis de bien comprendre le fonctionnement, avec le manuel à coté.
    Merci pour le lien, je vais sûrement pouvoir éclaircir deux ou trois zones d'ombres.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XHTML 1.1] XHTML tuto débutant
    Par Thony31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/04/2009, 19h38

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