The root cause is that sometimes DRW_culling_min_max_test returns true. In fact DRW_culling_min_max_test gives an index to a wrong face. You can find further details on this behavior and why the initial fix was made in T65585.
Details
Details
- Reviewers
Campbell Barton (campbellbarton) - Maniphest Tasks
- T83391: Knife tool renders future points incorrectly once again
Diff Detail
Diff Detail
- Repository
- rB Blender
- Branch
- Fix-NurbsExtruding (branched from master)
- Build Status
Buildable 11887 Build 11887: arc lint + arc unit
Event Timeline
This comment was removed by Janusch Patas (patjan).
Comment Actions
Looking into this and I think it's solving the problem at the wrong level.
The issue is caused by the face being set, without KnifePosData.co & KnifePosData.cage being set.
In this case when the face is set, there is an incorrect assumption in knife_update_active.
Committed alternate fix rB27a7b2e27ae8088dccfa87e66c820dc2e37c113a
Note that this part of the knife code can use further improvements, the API for finding the nearest geometry elements should also be documented more clearly.