[Bf-blender-cvs] [7e840321c75] compositor-full-frame: Compositor: Fix plane track wrong area of interest calculations

Manuel Castilla noreply at git.blender.org
Fri Aug 20 17:34:36 CEST 2021


Commit: 7e840321c75df3f47e0b1d1920a248889c481239
Author: Manuel Castilla
Date:   Fri Aug 20 11:20:36 2021 +0200
Branches: compositor-full-frame
https://developer.blender.org/rB7e840321c75df3f47e0b1d1920a248889c481239

Compositor: Fix plane track wrong area of interest calculations

Perspective matrix in sample data was not initialized because corners
were not calculated at that point of execution.

===================================================================

M	source/blender/compositor/operations/COM_PlaneTrackOperation.cc
M	source/blender/compositor/operations/COM_PlaneTrackOperation.h

===================================================================

diff --git a/source/blender/compositor/operations/COM_PlaneTrackOperation.cc b/source/blender/compositor/operations/COM_PlaneTrackOperation.cc
index 0884f2ad979..bf24f843ca2 100644
--- a/source/blender/compositor/operations/COM_PlaneTrackOperation.cc
+++ b/source/blender/compositor/operations/COM_PlaneTrackOperation.cc
@@ -101,18 +101,40 @@ void PlaneTrackCommon::determineResolution(unsigned int resolution[2],
 
 /* ******** PlaneTrackMaskOperation ******** */
 
+void PlaneTrackMaskOperation::init_data()
+{
+  PlaneDistortMaskOperation::init_data();
+  if (execution_model_ == eExecutionModel::FullFrame) {
+    PlaneTrackCommon::read_and_calculate_corners(this);
+  }
+}
+
+/* TODO(manzanilla): to be removed with tiled implementation. */
 void PlaneTrackMaskOperation::initExecution()
 {
   PlaneDistortMaskOperation::initExecution();
-  PlaneTrackCommon::read_and_calculate_corners(this);
+  if (execution_model_ == eExecutionModel::Tiled) {
+    PlaneTrackCommon::read_and_calculate_corners(this);
+  }
 }
 
 /* ******** PlaneTrackWarpImageOperation ******** */
 
+void PlaneTrackWarpImageOperation::init_data()
+{
+  PlaneDistortWarpImageOperation::init_data();
+  if (execution_model_ == eExecutionModel::FullFrame) {
+    PlaneTrackCommon::read_and_calculate_corners(this);
+  }
+}
+
+/* TODO(manzanilla): to be removed with tiled implementation. */
 void PlaneTrackWarpImageOperation::initExecution()
 {
   PlaneDistortWarpImageOperation::initExecution();
-  PlaneTrackCommon::read_and_calculate_corners(this);
+  if (execution_model_ == eExecutionModel::Tiled) {
+    PlaneTrackCommon::read_and_calculate_corners(this);
+  }
 }
 
 }  // namespace blender::compositor
diff --git a/source/blender/compositor/operations/COM_PlaneTrackOperation.h b/source/blender/compositor/operations/COM_PlaneTrackOperation.h
index 3bae230aa06..d2027755162 100644
--- a/source/blender/compositor/operations/COM_PlaneTrackOperation.h
+++ b/source/blender/compositor/operations/COM_PlaneTrackOperation.h
@@ -73,6 +73,8 @@ class PlaneTrackMaskOperation : public PlaneDistortMaskOperation, public PlaneTr
   {
   }
 
+  void init_data() override;
+
   void initExecution() override;
 
   void determineResolution(unsigned int resolution[2],
@@ -92,6 +94,8 @@ class PlaneTrackWarpImageOperation : public PlaneDistortWarpImageOperation,
   {
   }
 
+  void init_data() override;
+
   void initExecution() override;
 
   void determineResolution(unsigned int resolution[2],



More information about the Bf-blender-cvs mailing list