Zdravím
Dnes jsem spustil první aplikaci podle knihy Pavel-Pokorný DirectX začínáme programovat.. a nemile mě překvapilo využití procesoru 50 %. Jde jen o vytvoření prázdného okna. Neví někdo čím to může být ?
Zdravím
Dnes jsem spustil první aplikaci podle knihy Pavel-Pokorný DirectX začínáme programovat.. a nemile mě překvapilo využití procesoru 50 %. Jde jen o vytvoření prázdného okna. Neví někdo čím to může být ?
#1 marek321
Knížku nemám a bez kódu to můžu těžko posoudit. Pokud tam máš čistě while smyčku bez nějakého omezení, tak to prostě jede co to dá. V nejjednodušší podobě se to řeší tak, že si změříš jak dlouho ti trvalo updatnout scénu a na zbytek času se pak uspíš. Za předpokladu že má tvůj monitor obnovovací frekvenci 60 Hz, tak by to mohlo v pseudokódu vypadat nějak takto
var maxFPS = 60;
render() {
var start = currentTime();
// updatování scény...
var end = currentTime();
sleep(1000 / maxFPS - (end.ms - start.ms));
render();
}
main() {
// inicializace
render();
}
Místo koncové rekurze tam můžeš dát samozřejmě while. Myslím si, že P. Pokorný pak v pozdější kapitole přijde s něčím podobným ;-).
Ten lock na 60 FPS pak samozřejmě není nutný. Větší hra většinu času stráví na grafice, která pak jede na 100% a CPU se i celkem fláká. I tak je ale podle mě rozumný, aby se scéna nerenderovala častěji, než zvládne vykreslit monitor.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku