How does a VideoTexture get updated?

Hello. I am curious about something.

I have a project where I am using a VideoTexture to put a video on a plane. I have limited the frame rate of the animation by setting a rate limit on calling requestAnimationFrame().

While this does work to slow the animation, I noticed that the video on the plane does not appear to get choppy no matter how low I make the frame rate. This got me wondering how the VideoTexture gets redrawn even though requestAnimationFrame was not called.

Is it the case that threejs is re-rendered even without requestAnimationFrame()? Thanks for helping to shed light on this.

No. Only when WebGLRenderer.render() is called, textured surfaces are rendered.

VideoTexture itself uses requestVideoFrameCallback() to know when its needsUpdate flag should be set to true.