ultddave
Legacy Member
Hey,
Ik heb een probleem. Ik wil in openGL een sprite op het scherm tekenen. Maar als ik dat doe begint de ventilator van mijn grafische kaart opvallend hard te draaien. Activiteit van de kaart springt naar 38%- 51% en soms hoger, en temperatuur gaat van 51 -> 57 graden.
Sprite zelf is PNG file (64x64 pixels) en wordt zonder problemen weergegeven.
De scene is dus volledig zwart met enkel de sprite die zichtbaar is, voor de rest wordt er niets getekend.
Het probleem bleek toen echter bij het aantal frames per second te liggen: 11000 - 14000.
Iemand enig idee hoe je het best het aantal frames per second limiteert?
Code waarbij ik irrelevante functies ivm keyboard/mouse input enzo heb weggelaten. [C++] C++ openGL - Pastebin.com
De tijd tussen het aantal frames wordt berekend door de functie GetElapsedTimeInSeconds. UpdateFrame gaat met die info dan kijken hoeveel FPS we hebben.
Zou ik gewoon iets simpels doen zoals die ellapsedtime of FPS gebruiken om al dan niet de "renderFrame" functie aan te roepen?
Bijvoorbeeld:
Of kan ik dat beter op een andere manier aanpakken?
PS: De code heb ik van internet gehaald, ben van plan deze beter te structureren, want in het begin stond echt alles in die ene file. Was een beetje onoverzichtelijk aan het worden. Ben nu apparte klassen voor de camera, renderer etc aant maken
.
Dank bij voorbaat.
Mvg,
Dave
Ik heb een probleem. Ik wil in openGL een sprite op het scherm tekenen. Maar als ik dat doe begint de ventilator van mijn grafische kaart opvallend hard te draaien. Activiteit van de kaart springt naar 38%- 51% en soms hoger, en temperatuur gaat van 51 -> 57 graden.
Sprite zelf is PNG file (64x64 pixels) en wordt zonder problemen weergegeven.
De scene is dus volledig zwart met enkel de sprite die zichtbaar is, voor de rest wordt er niets getekend.
Het probleem bleek toen echter bij het aantal frames per second te liggen: 11000 - 14000.
Iemand enig idee hoe je het best het aantal frames per second limiteert?
Code waarbij ik irrelevante functies ivm keyboard/mouse input enzo heb weggelaten. [C++] C++ openGL - Pastebin.com
De tijd tussen het aantal frames wordt berekend door de functie GetElapsedTimeInSeconds. UpdateFrame gaat met die info dan kijken hoeveel FPS we hebben.
Zou ik gewoon iets simpels doen zoals die ellapsedtime of FPS gebruiken om al dan niet de "renderFrame" functie aan te roepen?
Bijvoorbeeld:
Code:
if(g_framespersecond <= 60)
renderframe();
else
return; // moet zelfs niet, maar kom :P;
Of kan ik dat beter op een andere manier aanpakken?

PS: De code heb ik van internet gehaald, ben van plan deze beter te structureren, want in het begin stond echt alles in die ene file. Was een beetje onoverzichtelijk aan het worden. Ben nu apparte klassen voor de camera, renderer etc aant maken
.Dank bij voorbaat.
Mvg,
Dave
) was gebruik maken van een High Performance Timer (in Windows.h) en dan laat je je applicatie steeks 'tikken' (blijven tikken tot je je screen moet updaten). Tijdens het ticken bekijk je of er genoeg tijd is gepasseerd om opnieuw iets te doen of hem met rust te laten.
Het is ook op een 'rapke' getypt, dus er kunnen ook fouten in zitten of dingen dat ik gewoon vergeten declareren heb of 