提交 649d51f4 编写于 作者: M Mr.doob

Updated builds.

上级 59889447
......@@ -22307,7 +22307,7 @@
var properties = renderer.properties;
var renderTarget, currentRenderTarget;
var mat3, mat4, renderSize;
var mat3, mat4, cameraArray, renderSize;
var available;
var maxNumViews = 0;
......@@ -22330,6 +22330,7 @@
renderSize = new Vector2();
mat4 = [];
mat3 = [];
cameraArray = [];
for ( var i = 0; i < maxNumViews; i ++ ) {
......@@ -22346,9 +22347,19 @@
}
function getCameraArray( camera ) {
if ( camera.isArrayCamera ) { return camera.cameras; }
cameraArray[ 0 ] = camera;
return cameraArray;
}
function updateCameraProjectionMatricesUniform( camera, uniforms ) {
var cameras = camera.cameras;
var cameras = getCameraArray( camera );
for ( var i = 0; i < cameras.length; i ++ ) {
......@@ -22362,7 +22373,7 @@
function updateCameraViewMatricesUniform( camera, uniforms ) {
var cameras = camera.cameras;
var cameras = getCameraArray( camera );
for ( var i = 0; i < cameras.length; i ++ ) {
......@@ -22376,7 +22387,7 @@
function updateObjectMatricesUniforms( object, camera, uniforms ) {
var cameras = camera.cameras;
var cameras = getCameraArray( camera );
for ( var i = 0; i < cameras.length; i ++ ) {
......@@ -22392,6 +22403,8 @@
function isMultiviewCompatible( camera ) {
if ( camera.isArrayCamera === undefined ) { return true; }
var cameras = camera.cameras;
if ( cameras.length > maxNumViews ) { return false; }
......@@ -22419,16 +22432,25 @@
}
var viewport = camera.cameras[ 0 ].viewport;
if ( camera.isArrayCamera ) {
var viewport = camera.cameras[ 0 ].viewport;
renderTarget.setSize( viewport.z, viewport.w );
renderTarget.setNumViews( camera.cameras.length );
} else {
renderTarget.setSize( renderSize.x, renderSize.y );
renderTarget.setNumViews( DEFAULT_NUMVIEWS );
renderTarget.setSize( viewport.z, viewport.w );
renderTarget.setNumViews( camera.cameras.length );
}
}
function attachCamera( camera ) {
if ( ! isMultiviewCompatible( camera ) ) { return; }
if ( isMultiviewCompatible( camera ) === false ) { return; }
currentRenderTarget = renderer.getRenderTarget();
resizeRenderTarget( camera );
......@@ -22456,17 +22478,26 @@
var viewWidth = srcRenderTarget.width;
var viewHeight = srcRenderTarget.height;
for ( var i = 0; i < numViews; i ++ ) {
if ( camera.isArrayCamera ) {
for ( var i = 0; i < numViews; i ++ ) {
var viewport = camera.cameras[ i ].viewport;
var viewport = camera.cameras[ i ].viewport;
var x1 = viewport.x;
var y1 = viewport.y;
var x2 = x1 + viewport.z;
var y2 = y1 + viewport.w;
var x1 = viewport.x;
var y1 = viewport.y;
var x2 = x1 + viewport.z;
var y2 = y1 + viewport.w;
gl.bindFramebuffer( 36008, srcFramebuffers[ i ] );
gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728 );
gl.bindFramebuffer( 36008, srcFramebuffers[ i ] );
gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728 );
}
} else {
gl.bindFramebuffer( 36008, srcFramebuffers[ 0 ] );
gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, 0, 0, renderSize.x, renderSize.y, 16384, 9728 );
}
......@@ -24468,7 +24499,7 @@
}
if ( camera.isArrayCamera && multiview.isAvailable() ) {
if ( vr.enabled && multiview.isAvailable() ) {
multiview.attachCamera( camera );
......@@ -24528,13 +24559,13 @@
state.setPolygonOffset( false );
if ( camera.isArrayCamera && multiview.isAvailable() ) {
if ( vr.enabled ) {
multiview.detachCamera( camera );
if ( multiview.isAvailable() ) {
}
multiview.detachCamera( camera );
if ( vr.enabled ) {
}
vr.submitFrame();
......@@ -24687,7 +24718,7 @@
_currentArrayCamera = camera;
if ( multiview.isAvailable() ) {
if ( vr.enabled && multiview.isAvailable() ) {
renderObject( object, scene, camera, geometry, material, group );
此差异已折叠。
......@@ -22296,7 +22296,7 @@ function WebGLMultiview( renderer, gl ) {
var properties = renderer.properties;
var renderTarget, currentRenderTarget;
var mat3, mat4, renderSize;
var mat3, mat4, cameraArray, renderSize;
var available;
var maxNumViews = 0;
......@@ -22319,6 +22319,7 @@ function WebGLMultiview( renderer, gl ) {
renderSize = new Vector2();
mat4 = [];
mat3 = [];
cameraArray = [];
for ( var i = 0; i < maxNumViews; i ++ ) {
......@@ -22335,9 +22336,19 @@ function WebGLMultiview( renderer, gl ) {
}
function getCameraArray( camera ) {
if ( camera.isArrayCamera ) return camera.cameras;
cameraArray[ 0 ] = camera;
return cameraArray;
}
function updateCameraProjectionMatricesUniform( camera, uniforms ) {
var cameras = camera.cameras;
var cameras = getCameraArray( camera );
for ( var i = 0; i < cameras.length; i ++ ) {
......@@ -22351,7 +22362,7 @@ function WebGLMultiview( renderer, gl ) {
function updateCameraViewMatricesUniform( camera, uniforms ) {
var cameras = camera.cameras;
var cameras = getCameraArray( camera );
for ( var i = 0; i < cameras.length; i ++ ) {
......@@ -22365,7 +22376,7 @@ function WebGLMultiview( renderer, gl ) {
function updateObjectMatricesUniforms( object, camera, uniforms ) {
var cameras = camera.cameras;
var cameras = getCameraArray( camera );
for ( var i = 0; i < cameras.length; i ++ ) {
......@@ -22381,6 +22392,8 @@ function WebGLMultiview( renderer, gl ) {
function isMultiviewCompatible( camera ) {
if ( camera.isArrayCamera === undefined ) return true;
var cameras = camera.cameras;
if ( cameras.length > maxNumViews ) return false;
......@@ -22408,16 +22421,25 @@ function WebGLMultiview( renderer, gl ) {
}
var viewport = camera.cameras[ 0 ].viewport;
if ( camera.isArrayCamera ) {
var viewport = camera.cameras[ 0 ].viewport;
renderTarget.setSize( viewport.z, viewport.w );
renderTarget.setNumViews( camera.cameras.length );
} else {
renderTarget.setSize( renderSize.x, renderSize.y );
renderTarget.setNumViews( DEFAULT_NUMVIEWS );
renderTarget.setSize( viewport.z, viewport.w );
renderTarget.setNumViews( camera.cameras.length );
}
}
function attachCamera( camera ) {
if ( ! isMultiviewCompatible( camera ) ) return;
if ( isMultiviewCompatible( camera ) === false ) return;
currentRenderTarget = renderer.getRenderTarget();
resizeRenderTarget( camera );
......@@ -22445,17 +22467,26 @@ function WebGLMultiview( renderer, gl ) {
var viewWidth = srcRenderTarget.width;
var viewHeight = srcRenderTarget.height;
for ( var i = 0; i < numViews; i ++ ) {
if ( camera.isArrayCamera ) {
for ( var i = 0; i < numViews; i ++ ) {
var viewport = camera.cameras[ i ].viewport;
var viewport = camera.cameras[ i ].viewport;
var x1 = viewport.x;
var y1 = viewport.y;
var x2 = x1 + viewport.z;
var y2 = y1 + viewport.w;
var x1 = viewport.x;
var y1 = viewport.y;
var x2 = x1 + viewport.z;
var y2 = y1 + viewport.w;
gl.bindFramebuffer( 36008, srcFramebuffers[ i ] );
gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728 );
gl.bindFramebuffer( 36008, srcFramebuffers[ i ] );
gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728 );
}
} else {
gl.bindFramebuffer( 36008, srcFramebuffers[ 0 ] );
gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, 0, 0, renderSize.x, renderSize.y, 16384, 9728 );
}
......@@ -24457,7 +24488,7 @@ function WebGLRenderer( parameters ) {
}
if ( camera.isArrayCamera && multiview.isAvailable() ) {
if ( vr.enabled && multiview.isAvailable() ) {
multiview.attachCamera( camera );
......@@ -24517,13 +24548,13 @@ function WebGLRenderer( parameters ) {
state.setPolygonOffset( false );
if ( camera.isArrayCamera && multiview.isAvailable() ) {
if ( vr.enabled ) {
multiview.detachCamera( camera );
if ( multiview.isAvailable() ) {
}
multiview.detachCamera( camera );
if ( vr.enabled ) {
}
vr.submitFrame();
......@@ -24676,7 +24707,7 @@ function WebGLRenderer( parameters ) {
_currentArrayCamera = camera;
if ( multiview.isAvailable() ) {
if ( vr.enabled && multiview.isAvailable() ) {
renderObject( object, scene, camera, geometry, material, group );
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册