Page MenuHome

Geometry Node: Sample Curve node: Random attribute type
AbandonedPublic

Authored by Iliya Katueshenock (Moder) on Jul 29 2022, 4:30 PM.

Details

Summary

This patch replaces the old sockets with a new, random type.
Spline sampling is a very necessary feature for any data. Entering
a spline index is important because users most often perceive
them as isolated objects and global interpolation was considered
a strange solution that had several problems:
Accuracy on large curves.
Difficulty finding offsets. ...
And also, the global nature of the input length used to make it
impossible to transfer data cyclically for closed curves.


Reason for deleting 3 old sockets:

  1. They are redundant in most situations.
  2. Optimization of this kind of algorithm is strange, for example, a transport node in nearest mode could also output the normal or position just as an optimization. This is strange.
  3. If this node is used only for the normal, then other old sockets can work the same way, but the new random type always evaluate the data to array. Because of this, even if not used, it will degrade the old node design.

Diff Detail

Event Timeline

Iliya Katueshenock (Moder) requested review of this revision.Jul 29 2022, 4:30 PM
Iliya Katueshenock (Moder) created this revision.

I also removed the data structure. I'm not sure if there is a big need for it, given that the amount of data is not that great right now. Maybe in the future there will be a reason to return it, but for now it seems redundant to me.

Iliya Katueshenock (Moder) edited the summary of this revision. (Show Details)
Iliya Katueshenock (Moder) planned changes to this revision.Jul 30 2022, 6:12 PM

Curve sampling context needs to be created

Hi, any updates on this diff? The spline index on the evaluation node is very nice feature I would love see!

This patch combines a few changes to the sampling node in one patch. In my opinion, the index should be added separately from the generic attribute sampling. Just adding the index input itself should be a simple change that mostly involves versioning.