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

WebGLRenderer: Reverted to previous approach for rendering ArrayCamera. The...

WebGLRenderer: Reverted to previous approach for rendering ArrayCamera. The current renderer architecture is not ready.
上级 b550539a
......@@ -1255,27 +1255,33 @@ function WebGLRenderer( parameters ) {
}
//
// render scene
var opaqueObjects = currentRenderList.opaque;
var transparentObjects = currentRenderList.transparent;
if ( camera.isArrayCamera ) {
if ( scene.overrideMaterial ) {
var cameras = camera.cameras;
var overrideMaterial = scene.overrideMaterial;
for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
if ( opaqueObjects.length ) renderObjects( opaqueObjects, scene, camera, overrideMaterial );
if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera, overrideMaterial );
var camera2 = cameras[ j ];
var bounds = camera2.bounds;
} else {
var x = bounds.x * _width;
var y = bounds.y * _height;
var width = bounds.z * _width;
var height = bounds.w * _height;
// opaque pass (front-to-back order)
_this.setViewport( x, y, width, height );
_this.setScissor( x, y, width, height );
_this.setScissorTest( true );
if ( opaqueObjects.length ) renderObjects( opaqueObjects, scene, camera );
renderScene( currentRenderList, scene, camera );
// transparent pass (back-to-front order)
}
if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera );
} else {
renderScene( currentRenderList, scene, camera );
}
......@@ -1463,46 +1469,46 @@ function WebGLRenderer( parameters ) {
}
function renderObjects( renderList, scene, camera, overrideMaterial ) {
function renderScene( renderList, scene, camera ) {
for ( var i = 0, l = renderList.length; i < l; i ++ ) {
var opaqueObjects = renderList.opaque;
var transparentObjects = renderList.transparent;
var renderItem = renderList[ i ];
if ( scene.overrideMaterial ) {
var object = renderItem.object;
var geometry = renderItem.geometry;
var material = overrideMaterial === undefined ? renderItem.material : overrideMaterial;
var group = renderItem.group;
var overrideMaterial = scene.overrideMaterial;
object.onBeforeRender( _this, scene, camera, geometry, material, group );
if ( opaqueObjects.length ) renderObjects( opaqueObjects, scene, camera, overrideMaterial );
if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera, overrideMaterial );
} else {
if ( camera.isArrayCamera ) {
// opaque pass (front-to-back order)
var cameras = camera.cameras;
if ( opaqueObjects.length ) renderObjects( opaqueObjects, scene, camera );
for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
// transparent pass (back-to-front order)
if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera );
var camera2 = cameras[ j ];
var bounds = camera2.bounds;
}
var x = bounds.x * _width;
var y = bounds.y * _height;
var width = bounds.z * _width;
var height = bounds.w * _height;
}
_this.setViewport( x, y, width, height );
_this.setScissor( x, y, width, height );
_this.setScissorTest( true );
function renderObjects( renderItems, scene, camera, overrideMaterial ) {
renderObject( object, scene, camera2, geometry, material, group );
for ( var i = 0, l = renderItems.length; i < l; i ++ ) {
}
var renderItem = renderItems[ i ];
} else {
var object = renderItem.object;
var geometry = renderItem.geometry;
var material = overrideMaterial === undefined ? renderItem.material : overrideMaterial;
var group = renderItem.group;
renderObject( object, scene, camera, geometry, material, group );
object.onBeforeRender( _this, scene, camera, geometry, material, group );
}
renderObject( object, scene, camera, geometry, material, group );
object.onAfterRender( _this, scene, camera, geometry, material, group );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册