|
|
@@ -126,6 +126,20 @@ class NodeMaterialObserver {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Returns `true` if the current rendering produces motion vectors.
|
|
|
+ *
|
|
|
+ * @param {Renderer} renderer - The renderer.
|
|
|
+ * @return {boolean} Whether the current rendering produces motion vectors or not.
|
|
|
+ */
|
|
|
+ needsVelocity( renderer ) {
|
|
|
+
|
|
|
+ const mrt = renderer.getMRT();
|
|
|
+
|
|
|
+ return ( mrt !== null && mrt.has( 'velocity' ) );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Returns monitoring data for the given render object.
|
|
|
*
|
|
|
@@ -479,7 +493,7 @@ class NodeMaterialObserver {
|
|
|
*/
|
|
|
needsRefresh( renderObject, nodeFrame ) {
|
|
|
|
|
|
- if ( this.hasNode || this.hasAnimation || this.firstInitialization( renderObject ) )
|
|
|
+ if ( this.hasNode || this.hasAnimation || this.firstInitialization( renderObject ) || this.needsVelocity( nodeFrame.renderer ) )
|
|
|
return true;
|
|
|
|
|
|
const { renderId } = nodeFrame;
|