VideoTexture不在VR中播放

时间:2017-11-16 10:46:37

标签: javascript three.js virtual-reality webvr

首先,纹理工作正常,视频按预期播放,但是当通过VRDisplay.requestPresent输入VR时,它会停止。这是为什么以及如何解决它?

1 个答案:

答案 0 :(得分:1)

VR显示器有自己的渲染循环。通常,{em> three.js 会在每个动画帧上将needsUpdate自动设置为true,但这仅适用于默认显示。

要解决此问题,请从vrdisplayconnect事件中获取VR显示并创建自己的更新循环。 E.g。

let display = e.display;
let displayUpdateLoop = () =>
{
    // May get a warning if getFrameData is not called.
    let frameData = new VRFrameData();
    display.getFrameData(frameData);

    videoTexture.needsUpdate = true;

    // Stop loop if no longer presenting.
    if (display.isPresenting)
        display.requestAnimationFrame(displayUpdateLoop);
}
display.requestAnimationFrame(displayUpdateLoop);