Просмотр исходного кода

NodeMaterialObserver: Force refresh when rendering velocity. (#30840)

Michael Herzog 9 месяцев назад
Родитель
Сommit
f636bf1f7b
1 измененных файлов с 15 добавлено и 1 удалено
  1. 15 1
      src/materials/nodes/manager/NodeMaterialObserver.js

+ 15 - 1
src/materials/nodes/manager/NodeMaterialObserver.js

@@ -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;

粤ICP备19079148号