[Bf-blender-cvs] [84702bd3d8a] blender-v2.92-release: Fix T84242: freestyle animated camera shift lags behind in animation render

Brecht Van Lommel noreply at git.blender.org
Thu Jan 21 14:35:19 CET 2021


Commit: 84702bd3d8aecb0ff546c5f0805651c2426644e7
Author: Brecht Van Lommel
Date:   Thu Jan 21 14:21:49 2021 +0100
Branches: blender-v2.92-release
https://developer.blender.org/rB84702bd3d8aecb0ff546c5f0805651c2426644e7

Fix T84242: freestyle animated camera shift lags behind in animation render

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

M	source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp

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

diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
index 65fa193f92f..f45ff77cf41 100644
--- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
+++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
@@ -178,24 +178,6 @@ static void init_view(Render *re)
   }
 }
 
-static void init_camera(Render *re)
-{
-  // It is assumed that imported meshes are in the camera coordinate system.
-  // Therefore, the view point (i.e., camera position) is at the origin, and
-  // the model-view matrix is simply the identity matrix.
-
-  zero_v3(g_freestyle.viewpoint);
-
-  unit_m4(g_freestyle.mv);
-
-  copy_m4_m4(g_freestyle.proj, re->winmat);
-
-#if 0
-  print_m4("mv", g_freestyle.mv);
-  print_m4("proj", g_freestyle.proj);
-#endif
-}
-
 static char *escape_quotes(char *name)
 {
   char *s = (char *)MEM_mallocN(strlen(name) * 2 + 1, "escape_quotes");
@@ -632,9 +614,8 @@ void FRS_init_stroke_renderer(Render *re)
   controller->ResetRenderCount();
 }
 
-void FRS_begin_stroke_rendering(Render *re)
+void FRS_begin_stroke_rendering(Render *UNUSED(re))
 {
-  init_camera(re);
 }
 
 void FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer)
@@ -657,6 +638,15 @@ void FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer)
   Depsgraph *depsgraph = DEG_graph_new(re->main, re->scene, scene_view_layer, DAG_EVAL_RENDER);
   BKE_scene_graph_update_for_newframe(depsgraph);
 
+  /* Init camera
+   * Objects are transformed into camera coordinate system, therefore the camera position
+   * is zero and the modelview matrix is the identity matrix. */
+  Object *ob_camera_orig = RE_GetCamera(re);
+  Object *ob_camera_eval = DEG_get_evaluated_object(depsgraph, ob_camera_orig);
+  zero_v3(g_freestyle.viewpoint);
+  unit_m4(g_freestyle.mv);
+  RE_GetCameraWindow(re, ob_camera_eval, g_freestyle.proj);
+
   // prepare Freestyle:
   //   - load mesh
   //   - add style modules



More information about the Bf-blender-cvs mailing list