Page MenuHome

Fix T91862: Do type conversion when data enters or exists node group.
ClosedPublic

Authored by Jacques Lucke (JacquesLucke) on Oct 29 2021, 5:36 PM.

Details

Summary

The geometry node evaluator now has access to the entire socket path from the node that produces a value to the node that uses it. This allows the evaluator to make decisions about at which points in the path the value should be converted. Multiple conversions may be necessary under some circumstances with nested node groups.

Diff Detail

Repository
rB Blender
Branch
multi-type-conversion (branched from master)
Build Status
Buildable 18319
Build 18319: arc lint + arc unit

Event Timeline

Jacques Lucke (JacquesLucke) requested review of this revision.Oct 29 2021, 5:36 PM
Jacques Lucke (JacquesLucke) created this revision.
  • Merge branch 'blender-v3.0-release' into multi-type-conversion
  • cleanup
Jacques Lucke (JacquesLucke) retitled this revision from Fix T91862: Do type conversion when data enters or exists node group (WIP). to Fix T91862: Do type conversion when data enters or exists node group..Nov 2 2021, 1:01 PM
Jacques Lucke (JacquesLucke) edited the summary of this revision. (Show Details)

It took a little bit, but I read through the changes and understand everything, so it looks good to me.

Out of curiosity, is there a reason to use Vector instead of Stack here?

source/blender/modifiers/intern/MOD_nodes_evaluator.cc
1305–1312

It might be simpler/easier to read if there was another function that abstracted this "convert and re-allocate value if necessary" behavior. Only if you think it's actually an improvement though.

source/blender/nodes/NOD_derived_node_tree.hh
161–179

Unused struct here.

This revision is now accepted and ready to land.Nov 2 2021, 8:27 PM

Vector is used because it makes iterating over the elements easier.

source/blender/modifiers/intern/MOD_nodes_evaluator.cc
1305–1312

Feels like the "destruct if necessary" behavior is fairly specific to this function, not sure if it can be abstracted away in a meaningful way. Will leave it as is for now.