R185 updateWorldMatrix update broke apps

with the change below.

Was this a necessary breaking change? Is the breakage worth it? Just wondering breakages are not enjoyable, even if the changes are in theory the better way.

It could have been non-breaking via a new option like Object3D.updateDirtyMatrixOnly = true or similar that would have allowed application-wide opt-in, at least for a deprecation timeline.

I spent time searching my app’s recent changes that I thought I broke, then found the threejs update.

I didn’t mean to update Three.js, but Three.js doesn’t (never will?) have stable versioning so having something like >=0.165 is the only risky way to get updates at the cost of random no-fun breakages.

I would generally advise pinning three to a specific version.

Yes, as described in the PR the previous behavior was inconsistent. The flag matrixWorldNeedsUpdate was ignored which was in fact a bug.

Sorry, but this change was inevitable and the implementation is more correct now.

1 Like

I definitely appreciate code becoming more correct. I totally want that in my own libs too. Sometimes, despite some incorrectness, breakages might not always be worth it, or there could be an alternative. The alternative could have been to opt into the checking (opposite boolean for the parameter). Yeah, not the most ideal, but also not breaking.