Optimizing the Render Loop
For optimal performance, consider these strategies:
// Conditional rendering - only render when needed
let needsToRender = true;
engine.runRenderLoop(() => {
if (needsToRender) {
scene.render();
}
});
// Pause rendering when tab is inactive
document.addEventListener('visibilitychange', () => {
if (document.hidden) {
engine.stopRenderLoop();
} else {
engine.runRenderLoop(() => scene.render());
}
});
// Adaptive quality based on performance
engine.runRenderLoop(() => {
const currentFps = engine.getFps();
if (currentFps < 30) {
// Reduce quality to maintain performance
reduceSceneComplexity();
}
scene.render();
});