2016-03-21 3 views
1

Предположим, что я рисую что-то на холсте с помощью WebGL в window.requestAnimFrame(somemethod);Как добиться кадров в секунду в WebGL?

Как получить количество кадров в секунду?

Например, откройте это Link который показывает количество кадров в секунду в верхнем левом углу.

Как добиться чего-то подобного с помощью простого JavaScript? Нет API, пожалуйста.

ответ

2

setInterval не точен, он может быть задержан и/или сложен, если один делают тяжелую работу, просто использовать метку времени передается в запрос обратного вызова кадра анимации.

var prev = 0; 
requestAnimationFrame(function (now) { 
    var delta = now - prev; 
    var fps = 1000/delta; 
    prev = now; 
    // render logic 
}); 
+0

Что теперь? это некоторое предопределенное число. – subhfyu546754

+0

Я бы, наверное, согласился с этим - более изящным, и теперь это временная метка https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame – Martin

2

в SomeMethod имеет глобальные переменную counter увеличилась затем добавить интервал Мерного значения

setInterval(function(){ console.log('fps:'+counter); counter=0; },1000); 
+0

Как таймер коррелирует с количеством кадров в секунду, нарисованным с помощью WebGL? – DarkDust

+0

каждый вызов вызова выполняется с помощью window.requestAnimFramer somemethod(), который запускается так, если у вас есть переменная, которую вы увеличиваете при каждом обратном вызове через секунду, вы просто видите, сколько раз вы вызывали somemethod – Martin

+0

Yup, это должно сработать. Вначале я не понял, что вы подразумеваете в своем ответе, спасибо за разъяснение. – DarkDust

 Смежные вопросы

  • Нет связанных вопросов^_^