Page MenuHome

Fix T92864: Curve object does not sync correctly in cycles.
ClosedPublic

Authored by Jacques Lucke (JacquesLucke) on Nov 6 2021, 11:44 AM.

Details

Summary

The issue was that the object_is_geometry method was used in two different contexts that expected the function to behave differently.

  1. Check if a "real" object can contain a geometry to check if it has to be tagged for sync after an update.
  2. Check if an object/instance actually is a geometry that cycles can work with.

I created a new object_can_have_geometry method for the first use case, instead of trying to adapt the existing object_is_geometry method to serve both uses.
Additionally, I changed it so that a BObjectInfo is passed into object_is_geometry to make it more explicit when this method is supposed to be used.

Diff Detail

Repository
rB Blender
Branch
fix-curve-update (branched from master)
Build Status
Buildable 18527
Build 18527: arc lint + arc unit

Event Timeline

Jacques Lucke (JacquesLucke) requested review of this revision.Nov 6 2021, 11:44 AM
Jacques Lucke (JacquesLucke) created this revision.

It seems simple enough, I think.

intern/cycles/blender/object.cpp
90

Maybe add a comment here to explain how this and object_is_geometry differ (this checks the instancer, whereas the other checks the object created by the depsgraph I think?)

This revision is now accepted and ready to land.Nov 6 2021, 7:43 PM
This revision now requires review to proceed.Nov 8 2021, 10:50 AM
This revision is now accepted and ready to land.Nov 10 2021, 12:22 PM