Aktuelle Zeit: 22.12.2024, 20:41

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Irrlicht drosseln
BeitragVerfasst: 08.10.2008, 15:12 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
hi leute,

ich wollte meine Irrlicht-Anwendung dahingehend im Auge behalten, wie es sichauf die CPU auswirkt und hatte daher nebenbei immer noch den TaskManager offen. Der zeigte mir aber, dass meine Application ca 95% der CPU benutzt. Ist des Standard, dass Irrlicht alle freie Ressourcen nutzt, auch wenn es die nicht braucht oder braucht er wirklich so viel Rechenleistung. Jedoch liegt die CPU-Auslastung immer bei so viel, egal ob ich blos n Image rendere, ne komplexe 3D-Szene rendere oder sonst iwas mache.

Weiß nicht, wie wichtig das ist (also obs sich auf andere Chips anders auswirkt) aber ich hab nen AMD Semperon 3300+ drin.

Und nun jedenfalls wollte ich wissen, ob und wie ich Irrlicht drosseln kann. Ganz platt gesagt: Programm, welches du mit Irrlicht betrieben wirst, nutze nur noch 50% der CPU-Rechenleistung!

geht das?

mfg heck

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 08.10.2008, 19:09 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
nunja, jedes programm benutzt erstmal alles an cpu was es zur verfügung bekommt.
eine der besten möglichkeiten ist es sowas wie einen delay/pause einzubauen.

erm, *sucht den Thread in dem er mal etwas darüber geschrieben hat*


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 08.10.2008, 19:16 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
*wartet* =D

EDIT: (sonst werd ihc hier von dem mods verwarnt) ähm nunja kann ich so einfach pausieren? grade bei nem 2D game muss ich ja ständig die sprites rendern und evtl auch animieren, sound muss abgespielt werden usw. da kann man doch denke ich nicht so einfach "pausieren".

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 08.10.2008, 19:49 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
erm, okay hab doch nur mal bloss nen hinweis drauf gegeben.

das heck hat geschrieben:
*wartet* =D

EDIT: (sonst werd ihc hier von dem mods verwarnt) ähm nunja kann ich so einfach pausieren? grade bei nem 2D game muss ich ja ständig die sprites rendern und evtl auch animieren, sound muss abgespielt werden usw. da kann man doch denke ich nicht so einfach "pausieren".

doch, das kann man so einfach pausieren, aber so treibt man auch die minimalen systemanforderungen eines spieles nach oben.
ausserdem pausiert man das spiel in dem moment ja nicht bis zur nächsten eingabe sondern nur für ein paar millisekunden also so 0,01s oder so.

hier mal die funktion:
Code:
VOID WINAPI Sleep( __in  DWORD dwMilliseconds);

in dem fall von 10 millisekunden also:
Code:
Sleep(10);


aso, ich habs leider nicht anders gefunden, aber die funktion steht in der windows.h


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 08.10.2008, 21:51 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
IrrlichtDevice::yield() bzw IrrlichtDevice::sleep() ist dann auch direkt Platformunabhängig

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 08.10.2008, 22:19 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
@sylence: lol lass mich raten

IrrlichtDevice::yield()
IrrlichtDevice::sleep()

sind features die erst ab 1.4 kamen oder? weil ich arbeite noch mit 1.1 (projekt wurde damit gestartet und ich weiß nicht wie hart der umstieg auf 1.4 ist, wurde ja proklamiert, dass es "kräftige" änderungen gab <.<)

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 09.10.2008, 09:07 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Ich nehm an das mit kräftige Änderungen eher interne Sachen gemeint sind. Und du kannst doch ruhig mal 1.1 und 1.4 parallel ausprobieren ;)
Einfach das neue mal einbinden und gucken ob noch alles läuft.

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 09.10.2008, 09:53 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
Nicht ganz (glaube nicht dass die Irrlicht intern verändern wollen, zuviel Aufwand, und sie läuft eig recht stabil) ich meinte ehre das hier:

>Viele Änderungen an der API (z.B. bei ISceneNodes und Materials), also vorsichtig beim Updaten sein, alter Code könnte evtl. nicht mehr funktionieren

zu lesen hier viewtopic.php?f=18&t=11

Es war Version 1.3. Habs bisher noch nicht angeschaut. Aber es scheint als seien die großen Änderungen alle auf 3D Szenen beschränkt. Hmmm, na ich führs mir mal zu Gemüte (Iwann mal^^)

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 09.10.2008, 10:39 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
ja es gibt grosse mengen an änderungen wenn man viel aus der engine benutzt,
zB. wurden einige Datentypen ein wenig umbenannt, der eventreceiver-aufruf geändert usw.
aber man sollte es trotzdem zumindestens einmal versuchen auf die aktuelle version umzusteigen, wenn man es nicht schafft kann man ja immernoch bei der alten bleiben^^


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 09.10.2008, 11:27 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
oha eventreceiver aufruf? wtf? okay ... aufpassen is angesagt

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 12.10.2008, 10:17 
Offline
Benutzeravatar

Registriert: 07.08.2008, 11:31
Beiträge: 104
Hallo!

Die Irrlicht-Drossel gefällt mir übrigens, ich weiß nicht wieso, obwohl es ja der größte Schwachsinn überhaupt ist, ein Spiel in seiner Leistung zu drosseln. Trotzdem, diese Funktion habe ich nichtsdestotrotz in mein Game integriert (lässt sich ja auch abschalten).

Common.cpp
Code:
   while(Main::device->run())
   if (Main::device->isWindowActive() && Main::paused == false)
   {
             if (Main::state == MENU)
             {
                Main::menu->driver->beginScene(true, true, SColor(0,0,0,0));
                Main::menu->gui->drawAll();
                          Main::menu->driver->endScene();
             }

             else
             {
                     Main::game->driver->beginScene(true, true, SColor(0,0,0,0));
                Main::game->gui->drawAll();
                Main::game->driver->endScene();
             }

                  if (Main::config->speedthrottle)
                  {
                       _sleep(Main::config->speedthrottletime);
                   }
   }
        else
        {
                  _sleep(3000);
        }


Common.cfg
Code:
[Common]
...
SpeedThrottle=false
SpeedThrottleTime=0


Init.cpp
Code:
          stringc common_ini_file = Main::config->data_directory;
          common_ini_file += "/config/user/common.cfg";
          ini = createIniFileReader(common_ini_file.c_str()); // bei mir ini bereits an anderer Stelle deklariert.
          // IIniFileReader *ini = createIniFileReader(common_ini_file.c_str());

          if (!ini->load())
          {
                    ini->drop();
                    return false;
          }

          Main::config->speedthrottle = ini->getValueB("Common","SpeedThrottle");
          Main::config->speedthrottletime = ini->getValueI("Common","SpeedThrottleTime");


Config.hpp
Code:
                    bool speedthrottle;
                    s32 speedthrottletime;


Nun ja wer es braucht, bitte.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Irrlicht drosseln
BeitragVerfasst: 12.10.2008, 20:51 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Roman hat geschrieben:
Hallo!
Die Irrlicht-Drossel gefällt mir übrigens, ich weiß nicht wieso, obwohl es ja der größte Schwachsinn überhaupt ist, ein Spiel in seiner Leistung zu drosseln.


Mitnichten, je weniger die Geräte beantsprucht werden desto länger leben sie. Wenn ein Spiel mit 60fps zufrieden ist, ohne Bremse aber mit 300fps läuft, dann werden die cpu und grafikkarte nur sinnlos hochgejagt.
Man sollte die "Wartezeit" allerdings von der Framerate abhängig machen. Läuft das Spiel nur mit 30fps bei maximaler pc auslastung, ist es ja nicht nötig zu bremsen, können dagegen eigentlich mehr Frames gerendert werden, wird gebremst.

Vsync hilft da auch.

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de