|
@@ -10,8 +10,9 @@ import RenderContexts from './RenderContexts.js';
|
|
|
import Textures from './Textures.js';
|
|
|
import Background from './Background.js';
|
|
|
import Nodes from './nodes/Nodes.js';
|
|
|
-import { Frustum, Matrix4, Vector2, Vector3, Vector4, Color, DoubleSide, BackSide, FrontSide, SRGBColorSpace, NoToneMapping } from 'three';
|
|
|
+import { Scene, Frustum, Matrix4, Vector2, Vector3, Vector4, Color, DoubleSide, BackSide, FrontSide, SRGBColorSpace, NoToneMapping } from 'three';
|
|
|
|
|
|
+const _scene = new Scene();
|
|
|
const _drawingBufferSize = new Vector2();
|
|
|
const _screen = new Vector4();
|
|
|
const _frustum = new Frustum();
|
|
@@ -181,6 +182,8 @@ class Renderer {
|
|
|
|
|
|
//
|
|
|
|
|
|
+ const sceneRef = ( scene.isScene === true ) ? scene : _scene;
|
|
|
+
|
|
|
const renderTarget = this._renderTarget;
|
|
|
const renderContext = this._renderContexts.get( scene, camera, renderTarget );
|
|
|
const activeCubeFace = this._activeCubeFace;
|
|
@@ -285,11 +288,11 @@ class Renderer {
|
|
|
|
|
|
//
|
|
|
|
|
|
- this._nodes.updateScene( scene );
|
|
|
+ this._nodes.updateScene( sceneRef );
|
|
|
|
|
|
//
|
|
|
|
|
|
- this._background.update( scene, renderList, renderContext );
|
|
|
+ this._background.update( sceneRef, renderList, renderContext );
|
|
|
|
|
|
//
|
|
|
|
|
@@ -301,8 +304,8 @@ class Renderer {
|
|
|
const transparentObjects = renderList.transparent;
|
|
|
const lightsNode = renderList.lightsNode;
|
|
|
|
|
|
- if ( opaqueObjects.length > 0 ) this._renderObjects( opaqueObjects, camera, scene, lightsNode );
|
|
|
- if ( transparentObjects.length > 0 ) this._renderObjects( transparentObjects, camera, scene, lightsNode );
|
|
|
+ if ( opaqueObjects.length > 0 ) this._renderObjects( opaqueObjects, camera, sceneRef, lightsNode );
|
|
|
+ if ( transparentObjects.length > 0 ) this._renderObjects( transparentObjects, camera, sceneRef, lightsNode );
|
|
|
|
|
|
// finish render pass
|
|
|
|