calculate frame time independent of fps
This commit is contained in:
parent
c4599824c6
commit
6f50150a6b
|
@ -40,6 +40,8 @@ let smoothCameraDistance = 4;
|
||||||
|
|
||||||
let mouseDragging = false;
|
let mouseDragging = false;
|
||||||
|
|
||||||
|
let frameTimes = [];
|
||||||
|
|
||||||
function resizeCanvas() {
|
function resizeCanvas() {
|
||||||
const dpr = window.devicePixelRatio;
|
const dpr = window.devicePixelRatio;
|
||||||
cv.width = cv.parentElement.clientWidth * dpr;
|
cv.width = cv.parentElement.clientWidth * dpr;
|
||||||
|
@ -439,8 +441,11 @@ function updateStats(deltaTime) {
|
||||||
fpsDisplay.innerText = Math.round(frameCount / timeSinceLastUpdate)
|
fpsDisplay.innerText = Math.round(frameCount / timeSinceLastUpdate)
|
||||||
|
|
||||||
let msDisplay = document.getElementById("ms");
|
let msDisplay = document.getElementById("ms");
|
||||||
msDisplay.innerText = deltaTime * 1000 + "ms";
|
if (frameTimes.length > 0) {
|
||||||
|
msDisplay.innerText = (Math.round(frameTimes.reduce((prev, curr) => prev + curr) / frameTimes.length * 100) / 100) + "ms";
|
||||||
|
}
|
||||||
|
|
||||||
|
frameTimes = [];
|
||||||
frameCount = 0;
|
frameCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -449,6 +454,7 @@ let hue = 0;
|
||||||
async function draw() {
|
async function draw() {
|
||||||
let now = Date.now();
|
let now = Date.now();
|
||||||
let deltaTime = (now - lastFrame) / 1000;
|
let deltaTime = (now - lastFrame) / 1000;
|
||||||
|
let frameStart = performance.now();
|
||||||
|
|
||||||
hue += deltaTime / 5;
|
hue += deltaTime / 5;
|
||||||
if (hue > 1) hue = 0;
|
if (hue > 1) hue = 0;
|
||||||
|
@ -640,6 +646,8 @@ async function draw() {
|
||||||
setAttribPointers();
|
setAttribPointers();
|
||||||
gl.drawArrays(gl.TRIANGLES, 0, floorVertices.length / 6);
|
gl.drawArrays(gl.TRIANGLES, 0, floorVertices.length / 6);
|
||||||
|
|
||||||
|
|
||||||
|
frameTimes.push(performance.now() - frameStart);
|
||||||
lastFrame = now;
|
lastFrame = now;
|
||||||
requestAnimationFrame(draw);
|
requestAnimationFrame(draw);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue