提交 72c2446e 编写于 作者: M Mugen87

WebXRManager: Dynamically update camera list.

上级 9f771cb3
......@@ -36,7 +36,9 @@ function WebXRManager( renderer, gl ) {
cameraR.layers.enable( 2 );
cameraR.viewport = new Vector4();
var cameraVR = new ArrayCamera( [ cameraL, cameraR ] );
var cameras = [ cameraL, cameraR ];
var cameraVR = new ArrayCamera();
cameraVR.layers.enable( 1 );
cameraVR.layers.enable( 2 );
......@@ -389,12 +391,23 @@ function WebXRManager( renderer, gl ) {
renderer.setFramebuffer( baseLayer.framebuffer );
var cameraVRNeedsUpdate = false;
// check if it's necessary to rebuild cameraVR's camera list
if ( views.length !== cameraVR.cameras.length ) {
cameraVR.cameras.length = 0;
cameraVRNeedsUpdate = true;
}
for ( var i = 0; i < views.length; i ++ ) {
var view = views[ i ];
var viewport = baseLayer.getViewport( view );
var camera = cameraVR.cameras[ i ];
var camera = cameras[ i ];
camera.matrix.fromArray( view.transform.matrix );
camera.projectionMatrix.fromArray( view.projectionMatrix );
camera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );
......@@ -405,6 +418,12 @@ function WebXRManager( renderer, gl ) {
}
if ( cameraVRNeedsUpdate === true ) {
cameraVR.cameras.push( camera );
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册