[Bf-blender-cvs] [63c4ec89e12] blender-v3.4-release: Fix T102514: wrong scene reported for missing compositing camera

Philipp Oeser noreply at git.blender.org
Sat Nov 19 20:46:45 CET 2022


Commit: 63c4ec89e123f10cc8fa155cd9bbcc16e74dc62c
Author: Philipp Oeser
Date:   Wed Nov 16 09:58:41 2022 +0100
Branches: blender-v3.4-release
https://developer.blender.org/rB63c4ec89e123f10cc8fa155cd9bbcc16e74dc62c

Fix T102514: wrong scene reported for missing compositing camera

If compositing uses renderlayers, and a camera was missing in the
associated scenes, the error message also referred to the scene the comp
tree was in (not the scene of the renderlayer -- which can potentionally
be different).

This was confusing and is now rectified.

Maniphest Tasks: T102514

Differential Revision: https://developer.blender.org/D16542

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

M	source/blender/render/intern/pipeline.cc

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

diff --git a/source/blender/render/intern/pipeline.cc b/source/blender/render/intern/pipeline.cc
index 1971c6fe6be..bf5ab6cbb53 100644
--- a/source/blender/render/intern/pipeline.cc
+++ b/source/blender/render/intern/pipeline.cc
@@ -1397,7 +1397,9 @@ static void do_render_full_pipeline(Render *re)
   }
 }
 
-static bool check_valid_compositing_camera(Scene *scene, Object *camera_override)
+static bool check_valid_compositing_camera(Scene *scene,
+                                           Object *camera_override,
+                                           ReportList *reports)
 {
   if (scene->r.scemode & R_DOCOMP && scene->use_nodes) {
     LISTBASE_FOREACH (bNode *, node, &scene->nodetree->nodes) {
@@ -1408,6 +1410,11 @@ static bool check_valid_compositing_camera(Scene *scene, Object *camera_override
         }
         if (sce->camera == nullptr) {
           /* all render layers nodes need camera */
+          BKE_reportf(reports,
+                      RPT_ERROR,
+                      "No camera found in scene \"%s\" (used in compositing of scene \"%s\")",
+                      sce->id.name + 2,
+                      scene->id.name + 2);
           return false;
         }
       }
@@ -1416,7 +1423,12 @@ static bool check_valid_compositing_camera(Scene *scene, Object *camera_override
     return true;
   }
 
-  return (camera_override != nullptr || scene->camera != nullptr);
+  const bool ok = (camera_override != nullptr || scene->camera != nullptr);
+  if (!ok) {
+    BKE_reportf(reports, RPT_ERROR, "No camera found in scene \"%s\"", scene->id.name + 2);
+  }
+
+  return ok;
 }
 
 static bool check_valid_camera_multiview(Scene *scene, Object *camera, ReportList *reports)
@@ -1459,8 +1471,6 @@ static bool check_valid_camera_multiview(Scene *scene, Object *camera, ReportLis
 
 static int check_valid_camera(Scene *scene, Object *camera_override, ReportList *reports)
 {
-  const char *err_msg = "No camera found in scene \"%s\"";
-
   if (camera_override == nullptr && scene->camera == nullptr) {
     scene->camera = BKE_view_layer_camera_find(scene, BKE_view_layer_default_render(scene));
   }
@@ -1481,8 +1491,7 @@ static int check_valid_camera(Scene *scene, Object *camera_override, ReportList
               /* camera could be unneeded due to composite nodes */
               Object *override = (seq->scene == scene) ? camera_override : nullptr;
 
-              if (!check_valid_compositing_camera(seq->scene, override)) {
-                BKE_reportf(reports, RPT_ERROR, err_msg, seq->scene->id.name + 2);
+              if (!check_valid_compositing_camera(seq->scene, override, reports)) {
                 return false;
               }
             }
@@ -1494,8 +1503,7 @@ static int check_valid_camera(Scene *scene, Object *camera_override, ReportList
       }
     }
   }
-  else if (!check_valid_compositing_camera(scene, camera_override)) {
-    BKE_reportf(reports, RPT_ERROR, err_msg, scene->id.name + 2);
+  else if (!check_valid_compositing_camera(scene, camera_override, reports)) {
     return false;
   }



More information about the Bf-blender-cvs mailing list