|
@@ -250,6 +250,10 @@ class Renderer {
|
|
|
|
|
|
//
|
|
|
|
|
|
+ sceneRef.onBeforeRender( this, scene, camera, renderTarget );
|
|
|
+
|
|
|
+ //
|
|
|
+
|
|
|
_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
|
|
|
_frustum.setFromProjectionMatrix( _projScreenMatrix, coordinateSystem );
|
|
|
|
|
@@ -318,6 +322,10 @@ class Renderer {
|
|
|
|
|
|
this._lastRenderContext = renderContext;
|
|
|
|
|
|
+ //
|
|
|
+
|
|
|
+ sceneRef.onAfterRender( this, scene, camera, renderTarget );
|
|
|
+
|
|
|
}
|
|
|
|
|
|
setAnimationLoop( callback ) {
|
|
@@ -822,12 +830,6 @@ class Renderer {
|
|
|
|
|
|
}
|
|
|
|
|
|
- _getRenderObject( object, material, scene, camera, lightsNode, passId ) {
|
|
|
-
|
|
|
- return this._objects.get( object, material, scene, camera, lightsNode, this._currentRenderContext, passId );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
_renderObject( object, scene, camera, geometry, material, group, lightsNode ) {
|
|
|
|
|
|
material = scene.overrideMaterial !== null ? scene.overrideMaterial : material;
|
|
@@ -836,19 +838,6 @@ class Renderer {
|
|
|
|
|
|
object.onBeforeRender( this, scene, camera, geometry, material, group );
|
|
|
|
|
|
- //
|
|
|
-
|
|
|
- const renderObject = this._getRenderObject( object, material, scene, camera, lightsNode );
|
|
|
-
|
|
|
- this._nodes.updateBefore( renderObject );
|
|
|
-
|
|
|
- //
|
|
|
-
|
|
|
- object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
|
|
|
- object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
|
|
|
-
|
|
|
- //
|
|
|
-
|
|
|
material.onBeforeRender( this, scene, camera, geometry, material, group );
|
|
|
|
|
|
//
|
|
@@ -856,16 +845,16 @@ class Renderer {
|
|
|
if ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {
|
|
|
|
|
|
material.side = BackSide;
|
|
|
- this._renderObjectDirect( this._getRenderObject( object, material, scene, camera, lightsNode, 'backSide' ) ); // create backSide pass id
|
|
|
+ this._renderObjectDirect( object, material, scene, camera, lightsNode, 'backSide' ); // create backSide pass id
|
|
|
|
|
|
material.side = FrontSide;
|
|
|
- this._renderObjectDirect( renderObject ); // use default pass id
|
|
|
+ this._renderObjectDirect( object, material, scene, camera, lightsNode ); // use default pass id
|
|
|
|
|
|
material.side = DoubleSide;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- this._renderObjectDirect( renderObject );
|
|
|
+ this._renderObjectDirect( object, material, scene, camera, lightsNode );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -875,7 +864,20 @@ class Renderer {
|
|
|
|
|
|
}
|
|
|
|
|
|
- _renderObjectDirect( renderObject ) {
|
|
|
+ _renderObjectDirect( object, material, scene, camera, lightsNode, passId ) {
|
|
|
+
|
|
|
+ const renderObject = this._objects.get( object, material, scene, camera, lightsNode, this._currentRenderContext, passId );
|
|
|
+
|
|
|
+ //
|
|
|
+
|
|
|
+ this._nodes.updateBefore( renderObject );
|
|
|
+
|
|
|
+ //
|
|
|
+
|
|
|
+ object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
|
|
|
+ object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
|
|
|
+
|
|
|
+ //
|
|
|
|
|
|
this._nodes.updateForRender( renderObject );
|
|
|
this._geometries.updateForRender( renderObject );
|