diff --git a/src/renderers/webgl/WebGLBackground.js b/src/renderers/webgl/WebGLBackground.js index 8262d854ac387b47bdbaa92f48a220244e993f9b..b107b92aaf682207e8a97e78825e05626d8ba644 100644 --- a/src/renderers/webgl/WebGLBackground.js +++ b/src/renderers/webgl/WebGLBackground.js @@ -105,7 +105,7 @@ function WebGLBackground( renderer, state, objects, premultipliedAlpha ) { } // push to the pre-sorted opaque render list - renderList.push( boxMesh, boxMesh.geometry, boxMesh.material, 0, null ); + renderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, null ); } else if ( background && background.isTexture ) { @@ -119,7 +119,7 @@ function WebGLBackground( renderer, state, objects, premultipliedAlpha ) { vertexShader: ShaderLib.background.vertexShader, fragmentShader: ShaderLib.background.fragmentShader, side: FrontSide, - depthTest: true, + depthTest: false, depthWrite: false, fog: false } ) @@ -164,7 +164,7 @@ function WebGLBackground( renderer, state, objects, premultipliedAlpha ) { // push to the pre-sorted opaque render list - renderList.push( planeMesh, planeMesh.geometry, planeMesh.material, 0, null ); + renderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, null ); } diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index 876f923b90ab956c9957319faf5b028377797d10..234de8d5f483954924bbdd1638136a8df112ed3f 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -64,7 +64,7 @@ function WebGLRenderList() { } - function push( object, geometry, material, z, group ) { + function getNextRenderItem( object, geometry, material, z, group ) { var renderItem = renderItems[ renderItemsIndex ]; @@ -96,10 +96,25 @@ function WebGLRenderList() { } + renderItemsIndex ++; + + return renderItem; + + } + + function push( object, geometry, material, z, group ) { + + var renderItem = getNextRenderItem( object, geometry, material, z, group ); ( material.transparent === true ? transparent : opaque ).push( renderItem ); - renderItemsIndex ++; + } + + function unshift( object, geometry, material, z, group ) { + + var renderItem = getNextRenderItem( object, geometry, material, z, group ); + + ( material.transparent === true ? transparent : opaque ).unshift( renderItem ); } @@ -116,6 +131,7 @@ function WebGLRenderList() { init: init, push: push, + unshift: unshift, sort: sort };